在UNIX中搜索并合并多个文件

时间:2015-07-14 08:15:47

标签: shell unix

我有多个.dat文件,我将动态地了解这些文件。 dat文件将有两个用逗号分隔的列。将像键值对。例如:

File1:                
entry1,100             
entry2,200            
entry3,300

File2:                    
entry1,500                 
entry3,750

现在我希望输出为

File3:           
entry1,100,500                 
entry2,200                
entry3,300,750  

2 个答案:

答案 0 :(得分:1)

假设您想要从两个文件中包含不可用的行 - 例如来自entry2,200的{​​{1}},则以下命令应该有效:

File2

join -t, -a1 -a2 file1 file2 指示join使用逗号作为分隔符,-t,指示join包含每个文件中不可用的行。

答案 1 :(得分:0)

当输入文件尚未排序时,您可以使用awk:

awk 'BEGIN{FS=OFS=","} FNR==NR{a[$1]=$2; next} {print $0 (($1 in a)?OFS a[$1]:"")}' f2.dat f1.dat
entry1,100,500
entry2,200
entry3,300,750