比较两个文件并打印匹配数据

时间:2018-06-04 07:55:10

标签: linux

这是我第一次在这里发帖所以如果格式不正确,请原谅我。我正在尝试后期处理副本交换数据。我有文件1,看起来像这样:

Time  Rep  
1000  1  
2000  2  
3000  3  
4000  2  

每个名为“

”的代表都有相应的日志文件
file.1.log  
file.2.log  
file.3.log

假设每个日志文件有2列数据:
file1.log

1000  a          
2000  b          
3000  c           
4000  d          

file2.log

1000  e          
2000  f         
3000  g           
4000  h 

file3.log

1000  i          
2000  j          
3000  k           
4000  l 

现在,对于文件1的每一行,我需要转到相应的日志文件并使用匹配时间打印整行。因此结果应显示为:

 Time  Rep     File     Data from File  
1000     1  file.1.log  1000 a   
2000  2     file.2.log  2000 f  
3000  3     file.3.log  3000 k   
4000  2     file.2.log  4000 h   

2 个答案:

答案 0 :(得分:-1)

谢谢你,亚历克斯,我的问题让我复杂化了。我首先为每个Rep列创建了一个新文件:

awk '{print $col}' file1 >> file2

然后用相应的数据文件粘贴每个文件:

paste file2 file3 >> file4

从那里我能够重新排列并循环遍历我需要的所有值:

awk "$1 == 0 {print $0}' file4 >> final.out

答案 1 :(得分:-2)

就像你想要的那样:

读到i时;做grep" $ i"文件1;完成< file2的

他们的答案更多: https://unix.stackexchange.com/questions/156075/compare-two-files-and-print-matches