Awk:如何合并第一个字段中具有重复 ID 的行的内容

Awk:如何合并第一个字段中具有重复 ID 的行的内容

我有一个文件在第一个字段中有重复的值。文件共有 4 个字段。我想合并剩余 3 个字段的值。

输入文件:

123|abc123||GFD
234|xyz456|tsdrf34526|KLD
123||cdft091|GFD
123|abc123|cdft091|GFD
456|sdf872||LHG

期望的输出:

123|abc123|cdft091|GFD
234|xyz456|tsdrf34526|KLD
456|sdf872||LHG

有人可以帮忙吗?

答案1

这是一个awk似乎可以满足紧急要求的程序......

#!/bin/awk -f
BEGIN {FS = "|"; OFS="|"}
{
    a[$1]++
    f1[$1] = $2
    f2[$1] = $3
    f3[$1] = $4
}
END { for (i in a) print i, f1[i], f2[i], f3[i] }

相关内容