첫 번째 열의 값이 동일하면 두 번째 열을 비교하고 두 번째 열이 다르면 첫 번째 열의 값을 txt 파일에 저장합니다.

첫 번째 열의 값이 동일하면 두 번째 열을 비교하고 두 번째 열이 다르면 첫 번째 열의 값을 txt 파일에 저장합니다.

첫 번째 열의 값은 동일하지만 두 번째 열의 값은 다른 스크립트를 작성하려고 합니다. 이 작업을 수행하는 방법을 아는 사람이 있나요? 예: 다음과 같은 .txt 파일이 있습니다.

163.213.54.88     aaaaa
163.213.54.88     bbbbb
9.143.93.246      ccccc
219.98.24.226     aaaaa
163.213.54.88     aaaaa
215.134.242.10    ccccc
131.16.225.31     bbbbb
9.143.93.246      aaaaa
131.16.225.31     bbbbb

이 경우 결과는 다음과 같아야 합니다.

163.213.54.88
9.143.93.246

매우 감사합니다.

답변1

다른 행과 중복되는 모든 행을 제거한 후 첫 번째 필드가 두 번 이상 나타나는 행의 첫 번째 필드를 추출합니다.

$ sort -u file | awk '++count[$1] == 2 { print $1 }'
163.213.54.88
9.143.93.246

답변2

정렬할 필요가 없습니다.

awk '!($1 in a) {a[$1] = $2; next} $2 != a[$1] {print $1}' file

산출

163.213.54.88
9.143.93.246

답변3

@Kusalananda의 답변과 매우 유사하지만(그는 나보다 한 발 앞서 있었습니다) 호출이 더 간단합니다 awk.

sort -u file | awk '{print $1}' | uniq -d

이 방법은 또한 다른 행과 중복되는 행을 제거한 다음 해당 행의 첫 번째 필드를 추출한 다음 첫 번째 필드의 모든 항목을 두 번 이상 출력합니다.

관련 정보