我想找到所有我在一个文件('file1.txt')中使用grep选项在另一个文件('file2.txt')中找到的文本的匹配项-f,告诉读取从文件中找到的表达式。
'FILE1.TXT'
一
一
'FILE2.TXT'
一
当我运行命令时:
grep -f file1.txt file2.txt -w
我只获得一次'a'的输出。相反,我想得到它两次,因为它在我的'file1.txt'文件中出现两次。有没有办法让grep(或任何其他unix / linux)工具为它读取的每一行输出匹配? 提前致谢。 阿图罗
答案 0 :(得分:0)
使用时
grep -f pattern.txt file.txt
这意味着匹配文件pattern.txt
中file.txt
中找到的模式。
它只给你一个输出,因为第二个文件中都有。
尝试交换文件,
grep -f file2.txt file1.txt -w
这会回答你的问题吗?
答案 1 :(得分:0)
Grep按设计工作,只提供一条输出线。 你可以使用另一种方法:
while IFS= read -r pattern; do
grep -e $pattern file2.txt
done < file1.txt
这将使用file1.txt中的每一行作为grep的模式,从而产生您正在寻找的输出。