Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 比较并添加新文件上的差异_Linux_Shell_Grep - Fatal编程技术网

Linux 比较并添加新文件上的差异

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

我想比较两个主机文件,并在新文件中添加差异。 我如何使用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

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

 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