【问题标题】:grep matches counted per keyword?每个关键字计算grep匹配?
【发布时间】:2020-06-28 20:47:37
【问题描述】:

我正在使用

$ grep -cf keyword_file Folder1/*

生成一个计数,在 Folder1 中的文件中,与关键字文件中的关键字匹配的行数。

这会生成一个总计数,例如

file1: 7   
file2: 4   
file3: 9

我的问题:
我希望输出格式如下

first_keyword   
file1: 5  
file2: 0  
file3: 5  
second_keyword  
file1:  0  
file2:  3  
file3:  1  
third_keyword  
file1:  2   
file2:  1   
file3:  3

这样我就可以看到每个单独的关键字在每个文件的一行中出现了多少次。

我如何做到这一点?

===== 添加详细信息 ====

keyword_file 位于 Documents/script_pad/keyword_file

Folder1 位于 Documents/script_pad/Folder1

【问题讨论】:

  • 使用for 循环?! for pattern in first_keyword second_keyword third_keyword; do ...
  • 感谢 Gilles,我之前没有尝试过 bash 'loop for',它给了我一个开始

标签: linux grep


【解决方案1】:

对我有用的是

创建一个包含

的文件“Documents/script_pad/loop2”
#!/bin/bash
cat Documents/script_pad/keyword_file | while read line
do
echo $line; grep -c $line Documents/script_pad/Folder1/*
done

运行时会导致

$ bash Documents/script_pad/loop2 
first_keyword
Documents/script_pad/Folder1/file1:5
Documents/script_pad/Folder1/file2:0
Documents/script_pad/Folder1/file3:5
second_keyword
Documents/script_pad/Folder1/file1:0
Documents/script_pad/Folder1/file2:3
Documents/script_pad/Folder1/file3:1
third_keyword
Documents/script_pad/Folder1/file1:2
Documents/script_pad/Folder1/file2:1
Documents/script_pad/Folder1/file3:3

【讨论】:

    猜你喜欢
    • 2023-03-26
    • 2017-06-30
    • 1970-01-01
    • 1970-01-01
    • 2014-06-20
    • 2019-01-14
    • 2014-06-02
    • 1970-01-01
    • 2023-04-06
    相关资源
    最近更新 更多