加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

shell – 如何使用awk在文件中的模式之后打印5个连续的行

发布时间:2020-12-15 19:10:08 所属栏目:安全 来源:网络整理
导读:我想在文件中搜索一个模式,并在找到该模式后打印5行。 我需要使用awk才能做到这一点。 例: 文件内容: ....####PATTERN########Line1#Line2#Line3#Line4#Line5... 如何解析文件并只打印上面提到的行? 我使用包含“PATTERN”的行的NR,并持续增加5,并打印
我想在文件中搜索一个模式,并在找到该模式后打印5行。
我需要使用awk才能做到这一点。

例:
文件内容:

.
.
.
.
####PATTERN#######
#Line1
#Line2
#Line3
#Line4
#Line5
.
.
.

如何解析文件并只打印上面提到的行?
我使用包含“PATTERN”的行的NR,并持续增加5,并打印过程中的每一行。
如果在Awk中有其他有效的wat,请告诉我。

在AWK中另一种做法:
awk '/PATTERN/ {for(i=1; i<=5; i++) {getline; print}}' inputfile

在sed中

sed -n '/PATTERN/{n;p;n;p;n;p;n;p;n;p}' inputfile

要么

sed -n '1{x;s/.*/####/;x};/PATTERN/{:a;n;p;x;s/.//;ta;q}' inputfile

#个字符代表一个计数器。使用少于要输出的行数。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读