키 열을 기반으로 중복된 값의 첫 번째 열 - Linux

키 열을 기반으로 중복된 값의 첫 번째 열 - Linux

이와 같이 파이프로 구분된 파일이 있습니다. 여기서 두 번째 열은 첫 번째 열의 ID를 그룹화하는 키입니다.

456566|23233|
456545|23233|
456745|23233|
456456|23234|
456356|23234|

두 번째 필드의 ID와 두 번째 열의 그룹의 나머지 ID를 기반으로 첫 번째 ID가 반복되는 이와 같은 파일을 만들려고 합니다. awk와 같은 유틸리티를 사용하여 이 작업을 수행하는 방법을 배우고 싶습니다.

산출

456566|456545
456566|456745
456456|456356

답변1

$ cat tst.awk
BEGIN { FS=OFS="|" }
$2 != prevKey {
    firstId = $1
    prevKey = $2
    next
}
{ print firstId, $1 }

$ awk -f tst.awk file
456566|456545
456566|456745
456456|456356

관련 정보