Yan*_*off 4 bash shell diff comm difference
我有文件file1,file2其中file2是 的子集file1。这意味着,如果我迭代file1,则有些行在 中file2,有些行不在 中,但没有行file2不在 中file1。一个文件中可能有多行内容相同。现在我想知道它们之间的区别,即所有行file1都不在file2.
diff(1) 不是答案,comm(1) 才是。
(无论出于何种原因)
但据我了解,comm首先需要对文件进行排序。问题:两个文件都是有序的(未排序!),并且需要保留此顺序。所以我真正想要的是迭代file1,并检查每一行,如果它也在file2. 如果没有,请将其写入file3. 如果相同内容出现多次,则应保留多次!
有没有办法用命令行来做到这一点?
用 GNU grep 试试这个:
grep -vFf file2 file1 > file3
Run Code Online (Sandbox Code Playgroud)
更新:
grep -vxFf file2 file1 > file3
Run Code Online (Sandbox Code Playgroud)