【问题标题】:How to combine the content of two files by matching the data如何通过匹配数据来组合两个文件的内容
【发布时间】:2019-11-03 06:32:02
【问题描述】:

我有两个这种格式的文件:

文件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 没有排序,它可以以任何方式出现。我是脚本新手,请帮助我。

【问题讨论】:

  • 嗨@Cyrus,实际上原始文件还有很多其他内容。我创建了一个脚本来仅显示进一步操作所需的必要内容(ID 和 DATA)。现在,我不知道该怎么做。

标签: bash awk scripting


【解决方案1】:

请您尝试关注一下。

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

【讨论】:

  • @nibba,您能否告诉我此解决方案是否适合您?
猜你喜欢
  • 2022-10-04
  • 1970-01-01
  • 1970-01-01
  • 2016-09-22
  • 2019-05-13
  • 1970-01-01
  • 1970-01-01
  • 2015-03-23
  • 1970-01-01
相关资源
最近更新 更多