我需要从文件中找到一些匹配的条件,并递归地找到以前匹配的文件中的下一个条件,我有类似的东西
input.txt中
123
22
33
您需要在以下文件中找到上述术语的文件,挑战是如果在10个文件中找到123,则应仅在这10个文件中搜索22,依此类推...... 文件示例如f1,f2,f3,f4 ..... f1200
所以就像我需要grep -w“123”f * | grep -w“123”| .....
不可能手动列出它们以便更方便吗?
答案 0 :(得分:1)
您可以使用awk脚本解决此问题,我遇到了类似的问题,这将正常工作
awk '{ if(!NR){printf("grep -w %d f*|",$1)} else {printf("grep -w %d f*",$1)} }' input.txt | sh
它的作用是什么?
答案 1 :(得分:0)
或许采用元编程观点会有所帮助。让grep
输出一系列grep
命令。或者写一点PERL程序。也许Ruby,如果情绪适合的话。
答案 2 :(得分:0)
您可以使用grep -lw
来编写匹配的文件名列表(请注意,它会在找到第一个匹配项后停止)。
捕获文件名列表,并将其用于循环中的下一次迭代。