Quora Feans Asked: 2018-04-07 09:48:23 +0800 CST2018-04-07 09:48:23 +0800 CST 2018-04-07 09:48:23 +0800 CST 使用 sed 匹配两个模式之间的线一次 [重复] 772 鉴于:sed -e '/pattern1/,/pattern2/!d' file.org 如何匹配 pattern1 和 pattern2 之间第一次出现的线条,而不是其余的? 例如: pattern1 aaaa pattern2 pattern1 bbb pattern 应该输出: aaa 欢迎使用替代解决方案(使用grep或awk其他)。 awk sed 1 个回答 Voted Best Answer DopeGhoti 2018-04-07T09:53:13+08:002018-04-07T09:53:13+08:00 $ 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
搜索要打印的范围,然后在看到第一个“结束”标记后退出。
awk
使排除起点和终点更容易一些: