考虑以下输入文件:
FixedHeader
Body1
Body2
BodyX
BodyY
BodyZ
Unrelated text111
Unrelated text551
Unrelated text111
Unrelated text551
FixedHeader
Body3
Body4
BodyX
BodyY
BodyZ
Unrelated text111
Unrelated text551
FixedHeader
Body5
Body6
BodyA
BodyB
BodyZC
我可以 grep 查找
FixedHeader
并使用以下命令拉出它后面的五行:
egrep -A5 "FixedHeader"
但是,但我想做的是识别
FixedHeader
并始终抓住它后面的 5 行,但不输出任何其余的上下文。
有没有办法在 grep 匹配的上下文中输出向下 N 行?
我并不特别喜欢 grep,尽管单行语句如果存在的话是更好的选择。
我想出了如何用
awk
做到这一点:
awk "BEGIN{target_line=-1} /FixedHeader/ {target_line=NR + 5} NR==target_line" input.log