如何通过匹配数据来合并两个文件的内容

时间:2019-06-20 12:24:32

标签: bash awk scripting

我有两个文件采用这种格式:

文件1:

ID:1
Data:ABC
ID:2
DATA:DEF
ID:5
DATA:XYZ

文件2:

ID:1
Data:GHI
ID:2
Data:JKL
ID:3
Data:MNO
ID:4
Data:OBC
ID:5
Data:XYZ

预期输出为:

ID:File1Data:File2Data

1:ABC:GHI
2:DEF:JKL
5:XYZ:XYZ

任务是首先匹配ID,然后并排打印其DATA。 bash中有没有为此的命令。 ID未排序,可能以任何方式出现。我是脚本的新手,请帮助我。

1 个答案:

答案 0 :(得分:0)

请您尝试以下。

awk 'BEGIN{FS=OFS=":"}FNR==NR{if($0~/^ID/){val=$2;next};a[val]=$2;next} /^ID/{val=$2;next} a[val]{print val,a[val],$2}'  File1  File2