Linux 如何比较shell中的两个文件
我有一个文件file1和File2。我想比较file1和file2,并生成一个file3,其中包含file1中存在的file2中的行。您可以尝试以下操作:-Linux 如何比较shell中的两个文件,linux,shell,Linux,Shell,我有一个文件file1和File2。我想比较file1和file2,并生成一个file3,其中包含file1中存在的file2中的行。您可以尝试以下操作:- awk 'FNR==NR{a[$0];next} ($0 in a)' file2 file1 使用grep $ grep -w -f file1 file2 -f用于告诉grep从文件中获取参数 -w匹配整个单词 编辑:- 你可以试试这个: fgrep -x -f file2 -v file1 -x匹配整条线 -f用于告诉g
awk 'FNR==NR{a[$0];next} ($0 in a)' file2 file1
使用grep
$ grep -w -f file1 file2
- -f用于告诉grep从文件中获取参数
- -w匹配整个单词
fgrep -x -f file2 -v file1
- -x匹配整条线
- -f用于告诉grep从文件中获取参数
- -v反转结果
文件1
中的模式将被视为模式
而非普通字符串,并将导致大量误报(例如文件1
中的条*
和文件2
中的条将匹配并打印条
)。还有,为什么-w
?@AdrianFrühwirth:-w这样它就匹配了整个单词!我遗漏了什么吗?哪个词?OP没有说任何关于文字的话,但也许我遗漏了什么。但正如我上面所解释的,这首先是错误的方法。@AdrianFrühwirth:-file3包含file2中的行,所以我假设该行将由单词组成,这就是为什么给出这个答案的原因@AdrianFrühwirth:-如果您有更好的想法或答案,您可以编辑我的答案!:)