diff的奇怪行为 grep | SED

0 unix linux bash grep sed

我的目标是提取那些File1不存在的行File2

让我们说File1:

String A
String B
String C
Run Code Online (Sandbox Code Playgroud)

让我们说File2:

String B
String C
Run Code Online (Sandbox Code Playgroud)

行被排序,我的输出应该是:

String A
Run Code Online (Sandbox Code Playgroud)

所以我为它写了这个命令:

diff File1 File2 | grep '^<' | sed 's/< //g'
Run Code Online (Sandbox Code Playgroud)

我的样本文件工作正常,10 - 20行.

我也试过这个命令:

grep -Fxv -f File2 File1
Run Code Online (Sandbox Code Playgroud)

这也适用于我的示例文件.

但问题是:

它似乎不适用于我的实际数据集,它是两个大约每行100万行的文件.

怎么了?我忽略了什么?什么是要做?

Chr*_*our 6

这就是该工具comm的用途:

$ comm -23 file1 file2
String A
Run Code Online (Sandbox Code Playgroud)