2013-03-16 120 views
1

使用sed,我想打印文件的第一個匹配行。我只想匹配線本身,沒有其他線。這是一個類似的命令,將打印的最後匹配行打印第一個匹配行

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

通過aragaer’s answer的啓發,這似乎做

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

爲什麼不能簡單地用grep和頭? – 2013-03-16 16:37:37

+1

爲什麼不只是'grep'? – 2013-03-16 16:37:44

+0

'grep -m1 while foo.sh' – 2013-03-16 18:37:07

回答

2

這可能爲你工作(GNU SED):

sed '/while/!d;q' file 
5
sed -n '/LINE TO MATCH/{p;q}' 
  • -n表示「不打印任何東西,除非說「
  • p - print
  • q - 停止並退出

p和q都會在匹配行上觸發。

+0

我的shell需要{p; q;} – suspectus 2013-03-16 16:44:33