我以为我理解sed,但我猜不是。我有以下两个文件,其中我想用一个不同的行替换“为什么”和“呵”行。根本没有空白。使用sed替换多行
的test.txt:
hi
why
huh
hi
why
huh
的test2.txt:
1
hi
why
huh
hi
why
huh
以下两个命令得到以下结果:
sed "N; s/<why\/>\n<huh\/>/yo/g" test.txt > out.txt
out.txt:
hi
why
huh
hi
yo
sed "N; s/<why\/>\n<huh\/>/yo/g" test2.txt > out2.txt
out2.txt:
1
hi
yo
hi
why
huh
我对sed有什么不了解?为什么不两个输出文件包含以下内容:
sed '/hi/! { N ; s/why\nhuh/yo/ }' test.txt
这意味着:
当一行中没有发现hi
(这将是
hi
yo
hi
yo
谢谢,这正是我想要的 - 匹配几个连续的行,因为第一个找到。 – user1145925