텍스트 파일에서 중복된 값만 인쇄하는 방법은 무엇입니까?

텍스트 파일에서 중복된 값만 인쇄하는 방법은 무엇입니까?

다음과 같은 값 열이 있다고 가정합니다.

파일 1:

1 
2
3
3
3
4
4
4
5
6

나는 출력을 원한다 :

3  
4

즉, 중복된 행만 있습니다. Linux에서 이 문제를 찾을 수 있는 명령줄 도구가 있습니까? (참고: 이 값은 숫자로 정렬됩니다.)

답변1

uniq(1)파일이 정렬된 경우 다음 방법을 사용할 수 있습니다.

uniq -d file.txt

파일이 정렬되지 않은 경우 먼저 다음을 실행하십시오 sort(1).

sort file.txt | uniq -d

그러면 중복된 내용만 인쇄됩니다.

기술적으로 입력은 정렬된 순서로 정렬될 필요가 없지만 파일의 중복 항목은 연속되어야 합니다. 이를 달성하는 일반적인 방법은 파일을 정렬하는 것입니다.

답변2

uniq목록을 정렬해야 하며 기본값은 알파벳순입니다.

sort path/to/your/filename | uniq -d

또는

cat fileName | sort | uniq -d

답변3

다음을 실행하세요:perl -ne 'print if $a{$_}++' filename.txt

답변4

사용 uniqawk:

cat File1  | uniq -c | awk '$1 > 1 { print $2 }'

관련 정보