如何查找单词集中的任何单词是否存在于 unix 或 linux 中的一组文件中的哪个文件中?

如何查找单词集中的任何单词是否存在于 unix 或 linux 中的一组文件中的哪个文件中?

假设我有一组文件

fSet: f1, f2, f3, f4, f5, ........... f100

我设定有话

wSet: w1, w2, w3, w4, w5, ...........w100

我如何列出包含 wSet 中的一个或多个单词的文件?

并进一步

我怎样才能制作一份报告,不仅列出文件,而且提到各自包含的单词?

并进一步

如果单词可能有像 ip 地址这样的特殊符号,我该如何处理?

答案1

尝试:

egrep 'w1|w2|...|w100' f1 f2 ... f100

或者更好的是,将你的话放入文件中并执行

grep -f filewithwords f1 f2 ... f100

答案2

grep --files-with-matches -e w1 -e w2 -e w3 -e w4 -e w5 f1 f2 f3

将单词放入文件中:

:> cat input
w1
w2
w3
w4
w5

:> grep --files-with-matches --file=input f1 f2 f3
f1
f3

:> grep -o --file=input f1 f2 f3
f1:w2
f3:w4
f3:w5

相关内容