我想在文件中搜索模式并在找到该模式后打印 5 行。
我需要使用awk
为此。
例子:
文件内容:
.
.
.
.
####PATTERN#######
#Line1
#Line2
#Line3
#Line4
#Line5
.
.
.
如何解析文件并仅打印上述行?
我是否使用包含“PATTERN”的行的 NR 并保持递增到 5 并打印过程中的每一行。
请让我知道是否有其他有效的方法可以在 Awk 中完成此操作。
在 AWK 中执行此操作的另一种方法:
awk '/PATTERN/ {for(i=1; i<=5; i++) {getline; print}}' inputfile
in sed
:
sed -n '/PATTERN/{n;p;n;p;n;p;n;p;n;p}' inputfile
in GNU sed
:
sed -n '/PATTERN/,+7p' inputfile
or
sed -n '1{x;s/.*/####/;x};/PATTERN/{:a;n;p;x;s/.//;ta;q}' inputfile
The #
字符代表一个计数器。使用比要输出的行数少一行的行。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)