sed -e'/ pattern / {d; n}'
sed -e'/ pattern / {d}'
这两个命令在Linux上是否相同? 将n放在最后是否有意义?
从“man sed”,我得到了:
n N读取/附加下一行输入到模式空间。
实际上,我读过这一行(u-boot helper.mk):
sed -n -e '/.*\.u_boot_list[^ ]\+/ ! {d;n}' \ -e 's/.*\(\.u_boot_list[^ ]\+\).*$$$$/\1/' \ -e 's/\.[^\.]\+$$$$//' \ -e ':s /^.\+$$$$/ { p;s/^\(.*\)\.[^\.]*$$$$/\1/;b s }'
答案 0 :(得分:0)
存在两个命令以提供两种不同的(虽然看似相似)目的。但是,在您的情况下,“n”是多余的。召回:
“n”命令将打印出当前模式空间(除非使用“-n”标志),清空当前模式空间,并读入下一行输入。
“d”命令删除当前模式空间,读取下一行,将新行放入模式空间,并中止当前命令,并在第一个sed命令处开始执行。这称为开始一个新的“循环”。
本摘要摘自the grymoire site。您可以阅读有关使用多行here的更多信息。