如何找到两个文件中的共同行

如何找到两个文件中的共同行

假设我有:

text.txt 带有

1
2
3
4
5

另一个 text2.txt 内容如下

9
4
2
1
7

我想提取重复项:

2
1
4

注意:我使用的是 Windows,我希望它尽可能简单

答案1

我想提取重复项

使用以下命令行:

Findstr /i /x /g:text.txt text1.txt

在哪里:

  • /I不区分大小写的搜索
  • /X打印完全匹配的行。
  • /G:StringsFile从文件中获取搜索字符串

来源:Findstr - 搜索字符串 - Windows CMD - SS64.com

例子:

F:\test>type text.txt
1
2
3
4
5
F:\test>type text1.txt
9
4
2
1
7
F:\test>Findstr /ixg:text.txt text1.txt
4
2
1
F:\test>Findstr /ixg:text1.txt text.txt
1
2
4

请注意,没有简单的方法可以按照问题中指定的顺序获取输出:

2
1
4

因为两个文件都不包含按该顺序排列的行。


进一步阅读

答案2

在 Unix 环境下(Windows 上为 cygwin),我首先对两个文件进行排序(sort text.txt > text.txt.sorted第二个文件同上),然后使用comm -12 text.txt.sorted text2.txt.sorted

相关内容