【发布时间】:2019-12-17 14:19:21
【问题描述】:
我在当前目录和子目录中有 json 文件。所有文件都有一行内容。
我想要一个包含单词XYZ 的所有文件的列表,以及它在该文件中出现的次数。
我想按照以下格式打印列表:file_name pattern_occurence_times
它应该类似于:
.\x1\x2\file1.json 3
.\x1\file3.json 2
问题在于grep 计算包含XYZ 的行 的数量,而不是出现次数。
由于文件的全部内容始终包含在一行中,因此计数始终为 1(如果该模式出现在文件中)。
我为此使用了这个命令:
find . -type f -name "*.json" -exec grep --files-with-match -i 'xyz' {} \; -exec grep -wci 'xyz' {} \;
我编写了一个 python 代码,它可以工作,但我想知道是否有任何方法可以使用 find 和 grep 或任何其他命令行工具来做到这一点。
谢谢
【问题讨论】: