【发布时间】:2022-01-19 18:13:50
【问题描述】:
美好的一天!
我试图弄清楚hold space 和pattern space 在sed 中的工作原理,以便我可以用它来替换多个字符串。
例如,如果要将第一行和第二行替换为NEW STRING:
echo -e "aa\nbb\ncc\ndd\n"
aa
bb
cc
dd
为了得到这样的STDOUT:
NEW STRING
NEW STRING
cc
dd
我正在尝试做类似的事情:
echo -e "aa\nbb\ncc\ndd\n" | sed -e 'commands'
我知道可以这样做:
echo -e "aa\nbb\ncc\ndd\n" | tr '\n' '\0' | sed -e 's#aa#NEW STRING#;s#bb#NEW STRING#' | tr '\0' '\n'
NEW STRING
NEW STRING
cc
dd
但是不使用tr怎么解决这个问题呢?
您能否提出一个我们不知道行号的案例?我们只知道aa 在bb 之后。
【问题讨论】: