sed或awk在单词之间打印线条

lid*_*dia 3 sed

如何打印"B部分("到下一个"部分"单词之间的所有行?

A节(

..

)

B节(

..

)

C节(

..

)

mhi*_*tza 6

sed -n '
  /^section B/!n;
  /^section B/d;
  /^)/q;
  p
' yourfile
Run Code Online (Sandbox Code Playgroud)

上述sed脚本的说明,步骤如下:

  1. 虽然该行不是!section B移动到下一行开始.
  2. 在我们到达所需的行后删除section B文本行.
  3. 如果行开始)我们退出.
  4. 否则我们打印当前处理过的生产线.


Bet*_*eta 5

如果您想打印从“B 部分”到“C 部分”的所有内容,包括这些行,

sed -ne '/^section B/,/^section/p'
Run Code Online (Sandbox Code Playgroud)

如果您不想打印两个“部分”行,

sed -e '1,/^section B/d' -e '/^section/,$d'
Run Code Online (Sandbox Code Playgroud)

如果您想包括“B 部分”和右括号(但不包括“C 部分”),

sed -ne '/^section B/,/^)/p'
Run Code Online (Sandbox Code Playgroud)

还有一些其他可能的变体。