处理多个文件时,awk的范围会重置

作为

比方说,我所拥有的文件1.txt2.txt并且3.txt,所有分别与下列内容:

foo1

Notes

foo2
bar

现在,我想打印出的线条,其放置的格局Notes,直到文件的末尾,并包含两种foobar图案。为此,我运行以下命令:

awk '/Notes/,/getline==0/ {if (/foo|bar/) {print}}' *txt

然而,该范围似乎是复位尽快awk与所述第二文件的进行,由于结果是以下的(只foo2bar应显示的条目):

foo2
bar
foo1
foo2
bar
foo1
foo2
bar

显然,如果我做这样的事情:

for i in $(*txt); do awk '/Notes/,/getline==0/ {if (/foo|bar/) {print}}' $i; done

...一切都会好起来的,但是,当然,我不想awk为每个文件启动一个新的过程,因此这并不是真正的解决方案。

我的问题是,如何分辨awk将此搜索范围/Notes/,/NR==0/应用于*txt掩码/组中的所有文件

钢铁司机

/getline==0/正在搜索模式 getline==0,该模式永远不会发生。

如果您有GNU awk,则可以

gawk '/Notes/{notes=1} notes && /foo|bar/ {print} ENDFILE{notes=0}'

否则(更惯用)

awk 'FNR==1{notes=0} /Notes/{notes=1} notes && /foo|bar/'

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

从prop事件处理程序设置时,反应状态会重置

使用AWK处理文件时出错

处理多个文件时的快速I / O

使用awk处理具有不同字段数的多个文件

将多个文件传递到awk时确定文件的开始

当git合并失败时,其余文件会如何处理?

Azure存储:在上传大文件时,BlobClient会不断重置自身

输入if语句时,变量是否会重置?

递增变量时重置Jinja for循环范围

处理多个文件时,VBA VLOOKUP错误“类型不匹配”

在AWK文件中嵌入范围

如何重写Awk脚本以处理多个文件而不是一个文件

根据值范围将awk结果排序到多个文件中

处理多个文件选择

使用awk处理一个文件时打印一个文件中的列

通过awk或grep处理文件

使用awk linux处理文件

完善awk命令处理文件

AWK-通过循环和条件检查处理多个文件

使用Awk处理多个文件-不需要的行正在打印

单击批处理文件或将文件夹拖到批处理文件时,用于循环目录搜索结果的批处理文件会更改

Python和PySide:从另一个文件调用函数时,变量值会重置

为什么在尝试提取单个文件时,SevenZipSharp.Interop NuGet会提取多个文件?

读取多个配置文件时,ConfigParser会覆盖以前的文件,为什么?

批量检查多个文件范围

当开关不处理一个或多个枚举值时,我可能会遇到C#编译时错误?

当从Java运行批处理文件时,>>之前会随机出现1个>>

当浏览器下载CSS文件时,Chrome中的渲染引擎会如何处理?

用awk写入多个文件