Awk
使用 sed 匹配兩個模式之間的線一次
鑑於:
sed -e '/pattern1/,/pattern2/!d' file.org
如何匹配 pattern1 和 pattern2 之間第一次出現的線條,而不是其餘的?
例如:
pattern1 aaaa pattern2 pattern1 bbb pattern
應該輸出:
aaa
歡迎使用替代解決方案(使用
grep
或awk
其他)。
$ cat input a b c a b c $ sed -n '/a/,/c/p;/c/q' input a b c
搜尋要列印的範圍,然後在看到第一個“結束”標記後退出。
awk
使排除起點和終點更容易一些:$ awk 'BEGIN { p=0 } /c/ { p=0; exit } p {print} /a/ { p=1 }' input b