Linux 比较并添加新文件上的差异
我想比较两个主机文件,并在新文件中添加差异。 我如何使用awk、grep、diff 范例Linux 比较并添加新文件上的差异,linux,shell,grep,Linux,Shell,Grep,我想比较两个主机文件,并在新文件中添加差异。 我如何使用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 we
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
如果两个文件的格式相同,这是一种快捷方式:
awk '!a[$0]++' f1 f2
相同的格式意味着对于相同的ip地址,f1和f2中的行完全相同。
对两个文件进行排序,仅限唯一行,结果放入文件中
-u=仅输出唯一值
-r=将mysrv1放在顶部的反向排序顺序可能不是必需的
@Nitharshannadarajah那么你应该在你的例子中展示这一点。我编辑了我的帖子,请你检查一下。ip地址相同,但不是由order@nitharrshanNadarajah秩序不是问题。我的代码适用于您编辑的示例。给我的一行在你的文件上试一下,检查结果是否是你想要的。谢谢它工作的很好,你能解释我什么是'!a[$0]++'请不要让堆栈溢出!请出示你的问题。您应该至少包括一个大纲,但最好是一个有问题的代码的大纲,然后我们可以尝试帮助解决具体问题。您还应该阅读。@Sundeep-True!违反了规则1“思考然后写”:-
sort -ur Host1.txt Host2.txt > Hostfinal.txt