打印第一个匹配行

时间:2013-03-16 16:36:32

标签: bash sed

使用sed,我想打印文件的第一个匹配行。我想只匹配线本身,没有其他线路。这是一个类似的命令,将打印最后一个匹配的行

$ sed '/while/h; $!d; g' foo.sh
while read video

aragaer’s answer的启发,这似乎就是这样做的

$ sed '/while/q;d' foo.sh
  while sleep 1

2 个答案:

答案 0 :(得分:5)

sed -n '/LINE TO MATCH/{p;q}'
  • -n表示“除非说”
  • ,否则不要打印任何内容
  • p - print
  • q - 停止并退出

p和q都会在匹配线上触发。

答案 1 :(得分:3)

这可能适合你(GNU sed):

sed '/while/!d;q' file