小编Ank*_*ain的帖子

按行比较两个文件并从第一个文件中删除重复项

问题:

  1. 需要比较两个文件,
  2. 从第一个文件中删除重复项
  3. 然后将 file1 的行附加到 file2

举例说明

假设,这两个文件是 test1 和 test2。

$ cat test2
www.xyz.com/abc-2
www.xyz.com/abc-3
www.xyz.com/abc-4
www.xyz.com/abc-5
www.xyz.com/abc-6
Run Code Online (Sandbox Code Playgroud)

而 test1 是

$ cat test1
www.xyz.com/abc-1
www.xyz.com/abc-2
www.xyz.com/abc-3
www.xyz.com/abc-4
www.xyz.com/abc-5
Run Code Online (Sandbox Code Playgroud)

比较 test1 和 test2并从测试 1 中删除重复项

结果要求:

$ cat test1
www.xyz.com/abc-1
Run Code Online (Sandbox Code Playgroud)

然后将此 test1 数据添加到 test2

$ cat test2
www.xyz.com/abc-2
www.xyz.com/abc-3
www.xyz.com/abc-4
www.xyz.com/abc-5
www.xyz.com/abc-6
www.xyz.com/abc-1
Run Code Online (Sandbox Code Playgroud)

尝试的解决方案:

join -v1 -v2 <(sort test1) <(sort test2)
Run Code Online (Sandbox Code Playgroud)

这导致了这个(这是错误的输出)

$ join -v1 -v2 <(sort test1) <(sort test2)
www.xyz.com/abc-1
www.xyz.com/abc-6
Run Code Online (Sandbox Code Playgroud)

我尝试的另一个解决方案是:

fgrep -vf test1 test2 …
Run Code Online (Sandbox Code Playgroud)

unix bash grep

4
推荐指数
2
解决办法
1万
查看次数

标签 统计

bash ×1

grep ×1

unix ×1