【问题标题】:Unix : Compare two TXT file issue and keep the lines which is not uniqueUnix:比较两个 TEXT 文件问题并保留不唯一的行
【发布时间】:2016-02-10 09:11:49
【问题描述】:

我有两个TXT 文件

#1.txt
1.1.1.1
2.2.2.2
3.3.3.3
4.4.4.4
5.5.5.5

#2.txt
1.1.1.1
2.2.2.2
6.6.6.6
7.7.7.7
8.8.8.8

我将1.txt2.txt 进行了比较,并在与1.txt 进行比较时得到了不在2.txt 中的IP。我做到了,

#comm -2 -3 <(sort 1.txt) <(sort 2.txt) > Out.txt

输出

#Out.txt
3.3.3.3
4.4.4.4
5.5.5.5

Out.txt IP 是不在2.txt 文件中的 IP。

现在,我想将1.txt2.txt 进行比较,并从1.txt 中得到一个不是唯一的。

#1.txt
1,1.1.1.1
2,2.2.2.2
3,3.3.3.3
4,4.4.4.4
5,5.5.5.5

#2.txt
1.1.1.1
2.2.2.2
6.6.6.6
7.7.7.7
8.8.8.8

预期结果

#Out.txt
3,3.3.3.3
4,4.4.4.4
5,5.5.5.5

如何在我的输出结果中包含 ID?

【问题讨论】:

  • I would like compare 1.txt against 2.txt and get the one which is not unique from 1.txt 不明白,为什么11111 没有输出?四个 1 和五个 1 不一样吗?
  • 哦,我明白了,是逗号

标签: bash csv unix comm


【解决方案1】:

这个 awk 单行代码应该适用于您的示例:

awk -F, 'NR==FNR{a[$0];next}!($2 in a)' 2.txt 1.txt

【讨论】:

  • 谢谢@kent!工作完美!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-08-16
  • 1970-01-01
  • 2021-02-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多