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

awk从列表中选择输入文件

发布时间:2020-12-14 01:42:29 所属栏目:Linux 来源:网络整理
导读:基本的Awk问题,但我似乎无法在任何地方找到答案: 我有一个50000 txt文件的文件夹,我想从中运行一个子集上的AWK搜索.我已将我想要限制搜索的文件名保存在单独的文档中.这将极大地加速搜索,目前看起来像这样: awk -F "searchTerm" '{print NF-1}' data/outpu
基本的Awk问题,但我似乎无法在任何地方找到答案:

我有一个50000 txt文件的文件夹,我想从中运行一个子集上的AWK搜索.我已将我想要限制搜索的文件名保存在单独的文档中.这将极大地加速搜索,目前看起来像这样:

awk -F "searchTerm" '{print NF-1}' data/output/*>> output.txt

非常感谢

解决方法

假设包含要搜索的子集的文件称为subset.txt,其内容具有此格式(每个文件位于单独的行中):

file1.txt
file2.txt
file3.txt
...
fileN.txt

然后这将做的伎俩:

awk -F "searchTerm" '{print NF-1}' $(<subset.txt) >> output.txt

说明:

> $(< subset.txt)将提供awk文件的子集列表作为输入. (见Jonathan Leffler在下面的评论)
我还应该指出-F“searchTerm”实际上是将字段分隔符(awk在每一行上使用的限制器)设置为searchTerm.如果要在包含“searchTerm”的每一行上打印字段数 – 1,请执行以下操作:

awk '/searchTerm/ {print NF-1}' $(cat subset.txt) >> output.txt

(编辑:李大同)

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

    推荐文章
      热点阅读