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] }

관련 정보