【发布时间】:2015-05-08 11:45:03
【问题描述】:
我有两个如下所示的以制表符分隔的文件:
文件 A
123,789 aa b c d
123 aa b c d
234 a b c d
345 aa b c d
456 a b c d
....
文件B
123 add c d e
345 add e f g
789 sub e f g
...
我想根据第 1 列将文件 B 中的第 2 列添加到文件 A 中,以便输出如下所示: 输出:
123,789 add,sub aa b c d
123 add aa b c d
234 a b c d
345 add aa b c d
456 a b c d
....
我尝试使用:
awk 'NR==FNR{a[$1]=$2;next}{$2=a[$1]FS$2;print}' OFS='\t' fileB file A
给出输出:
123,789 aa b c d
123 add aa b c d
234 a b c d
345 add aa b c d
456 a b c d
问题在于文件 A 的 column1 中的列具有多个用逗号分隔的字符串。awk 代码将其视为单个字符串,因此无法与 fileB 匹配。有人可以对 awk 代码进行编辑或任何修复。谢谢。
【问题讨论】: