【问题标题】:Compare and add the difference on new files比较并添加新文件的差异
【发布时间】:2017-04-25 14:51:23
【问题描述】:

我想比较两个主机文件并在新文件中添加差异。 如何使用 awk、grep、diff...

例子

Host1.txt

#mysrv1
78.23.2.1.3   tata.com
98.56.21.34   website.com


Host2.txt

#mysrv1
200.75.2.23    toto.com
98.56.21.34   website.com
734.2.32.1    test.com   

Hostfinal.txt

#mysrv1
98.56.21.34   website.com
78.23.2.1.3   tata.com
200.75.2.23    toto.com
734.2.32.1    test.com

【问题讨论】:

标签: linux shell grep


【解决方案1】:
sort -ur Host1.txt Host2.txt > Hostfinal.txt

对两个文件进行排序,只有唯一的行,结果进入文件

  • -u = 仅输出唯一值
  • -r = 反向排序(将#mysrv1 置于顶部,可能不是必需的)

【讨论】:

  • @Sundeep 真的!违反规则1'思考然后写作':-)
【解决方案2】:

如果您的两个文件格式相同,这是快捷方式:

 awk '!a[$0]++' f1 f2
  • same format表示相同的ip地址,f1和f2中的行完全相同

【讨论】:

  • @nitharrshanNadarajah 那么你应该在你的例子中展示这个。
  • 我编辑了我的帖子,请您检查一下。 IP 地址相同,但不是按顺序排列
  • @nitharrshanNadarajah 订单不是问题。我的代码适用于您编辑的示例。试一下我的单线文件,检查结果是否符合您的要求。
  • 谢谢它工作正常,你能解释一下'!a[$0]++'是什么
猜你喜欢
  • 2014-06-08
  • 2019-11-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多