Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.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 awk/sed/grep命令比较三个文件的内容_Linux_Bash_Awk_Grep - Fatal编程技术网

Linux awk/sed/grep命令比较三个文件的内容

Linux awk/sed/grep命令比较三个文件的内容,linux,bash,awk,grep,Linux,Bash,Awk,Grep,嗨,我正在尝试自动化一些数据输入,我正在使用tcp服务器/客户端发送文件名,以便其他服务器进入存储库并提取这些文件。作为测试的一部分,我正在运行这个程序,记录应该发送的文件名、接收到的内容,如果收到,我将发送一个带有文件名的回复 我有三个文本文件,里面有文件名 SupposedToSend.txt Recieved.txt GotReplyFor.txt 我知道awk可以做我想做的事情,但我不确定如何设置它,我需要比较这三个文件中任何其他文件中不存在的元素,因此如果任何文件中缺少一个条目,我需

嗨,我正在尝试自动化一些数据输入,我正在使用tcp服务器/客户端发送文件名,以便其他服务器进入存储库并提取这些文件。作为测试的一部分,我正在运行这个程序,记录应该发送的文件名、接收到的内容,如果收到,我将发送一个带有文件名的回复

我有三个文本文件,里面有文件名

SupposedToSend.txt
Recieved.txt
GotReplyFor.txt
我知道awk可以做我想做的事情,但我不确定如何设置它,我需要比较这三个文件中任何其他文件中不存在的元素,因此如果任何文件中缺少一个条目,我需要知道哪个条目和哪个文件

我可以为此编写一个程序,这将需要更长的时间来编写和运行,因为这些文件得到5个元素/分钟转储到他们

paste -d '\n' SupposedToSend.txt Recieved.txt GotReplyFor.txt | uniq -c | grep -v '^   3'
如果你没有错误,这是可以容忍的,否则就非常不理想。或者如果不同文件中的数据顺序不一致。。。(在这种情况下,您可能需要对它们进行排序。)


或者您可以运行diff3来比较3个文件…

5个元素/分钟不是很快。你想要一个工具来搜索奇怪的文件名一次,还是每隔几秒钟?只有一次,我想运行几个小时,并确保文件名的发送没有问题,这就是为什么我在这三个点检查。。。因此,我只需要运行一次,就可以获得其他两个文件中不存在的名称。您可以使用
awk
,但在Perl中这样做会更容易。您基本上希望将每一行保存到一个关联数组(或perl中的哈希)中,然后比较数组(哈希)。运行
diff
3次并以这种方式获取所需的信息如何?如果您只运行一次,这可能是最快的方法。您需要向示例显示三个文件的实际内容,并详细解释您想要的内容。这个问题有很多种解释,基本上是无法回答的。第一只猫工作得很好,我试着粘贴一下,看看有什么不同。。谢谢