我需要帮助提取/打印4行后每隔3次出现模式,直到文件结束。 下面考虑一下日志文件的例子
ERROR_FILE_NOT_FOUND ERROR_FILE_NOT_FOUND ERROR_FILE_NOT_FOUND Extract line 1 Extract line 2 Extract line 3 Extract line 4 ERROR_FILE_NOT_FOUND ERROR_FILE_NOT_FOUND ERROR_FILE_NOT_FOUND Extract line 5 Extract line 6 Extract line 7 Extract line 8 ERROR_FILE_NOT_FOUND ERROR_FILE_NOT_FOUND ERROR_FILE_NOT_FOUND Extract line 9 Extract line 10 Extract line 11 Extract line 12
cygwin curl,Wget,wget和top“找不到命令”
windows批处理,在嵌套循环内设置一个variables
stream水线如何工作?
我想发送短信使用命令和PHP从我的胜利8 oS
为什么du和Perl的文件大小不一样?
awk -v patt="ERROR_FILE_NOT_FOUND" 'lines==3 {print; appeared++} appeared==4 {lines=0;appeared=0} patt~$0 {lines++}' file
说明
这使得加载lines数匹配。 一旦达到3 ,开始打印。 它正好打印4次。
-v patt="ERROR_FILE_NOT_FOUND"这提供了要查看的模式
lines==3 {print; appeared++} lines==3 {print; appeared++}如果计数器lines是3 ,则打印行并开始计算出现了多少行。
如果已经打印的行数已经是4 ,则appeared==4{lines=0;appeared=0} ,将标志重置为0 。
patt~$0 {lines++}如果行符合给定的模式,则增加变量lines 。
注意,所有这些常量3和4也可以放在-v之外,使其更通用:
awk -v patt="ERROR_FILE_NOT_FOUND" -v matches=3 -v lines_to_print=4 'lines==matches {print; appeared++} appeared==lines_to_print {lines=0;appeared=0} patt~$0 {lines++}' file
测试
$ awk -v patt="ERROR_FILE_NOT_FOUND" 'lines==3 {print; appeared++} appeared==4 {lines=0;appeared=0} patt~$0 {lines++}' file Extract line 1 Extract line 2 Extract line 3 Extract line 4 Extract line 5 Extract line 6 Extract line 7 Extract line 8 Extract line 9 Extract line 10 Extract line 11 Extract line 12
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。