English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Linux uniq 命令

Linux 명령어大全

Linux uniq 命令用于检查及删除文本文件中重复出现的行列,一般与 sort 命令结合使用。

uniq 可检查文本文件中重复出现的行列。

语法

uniq [-cdu][-f<栏位>][-s<字符 위치>][-w<字符 위치>][--help][--version][입력 파일][출력 파일]

参数

  • -c或--count 在每列旁边显示该行重复出现的次数。

  • -d或--repeated 仅显示重复出现的行列。

  • -f<栏位>或--skip-fields=<栏位> 忽略比较指定的栏位。

  • -s<字符位置>或--skip-chars=<字符位置> 忽略比较指定的字符。

  • -u或--unique 仅显示出一次的行列。

  • -w<字符位置>或--check-chars=<字符位置> 指定要比较的字符。

  • --help 显示帮助。

  • --version 显示版本信息。

  • [입력 파일] 정렬된 텍스트 파일을 지정합니다. 이 옵션을 지정하지 않으면 표준 입력에서 데이터를 읽습니다;

  • [출력 파일] 출력할 파일을 지정합니다. 이 옵션을 지정하지 않으면 내용이 표준 출력 장치(터미널)에 표시됩니다.

온라인 예제

파일 testfile에서 2、3、5、6、7、9동일한 행의 경우 uniq 명령어를 사용하여 중복된 행을 제거할 수 있습니다. 다음 명령어를 사용하십시오:

uniq testfile

testfile의 원래 내용은 다음과 같습니다:

$ cat testfile      #원래 내용  
test 30  
test 30  
test 30  
안녕하세요 95  
안녕하세요 95  
안녕하세요 95  
안녕하세요 95  
Linux 85  
Linux 85

uniq 명령어를 사용하여 중복된 행을 제거한 후 다음과 같은 출력 결과가 나타납니다:

$ uniq testfile      #중복된 행을 제거한 내용  
test 30  
안녕하세요 95  
Linux 85

파일을 확인하고 파일에서 중복된 행을 제거하여 행의 시작 부분에 중복된 횟수를 표시합니다. 다음 명령어를 사용하십시오:

uniq -c testfile

결과 출력은 다음과 같습니다:

$ uniq -c testfile      #중복된 행을 제거한 내용  
3 test 30             #앞의 숫자는 이 행이 몇 번 나타났는지 의미합니다3번  
4 안녕하세요 95            #앞의 숫자는 이 행이 몇 번 나타났는지 의미합니다4번  
2 Linux 85            #앞의 숫자는 이 행이 몇 번 나타났는지 의미합니다2번

중복된 행이 인접하지 않으면 uniq 명령어는 작동하지 않습니다. 즉, 다음과 같은 파일 내용이면 uniq 명령어는 작동하지 않습니다:

$ cat testfile1      # 원래 내용 
test 30  
안녕하세요 95  
Linux 85 
test 30  
안녕하세요 95  
Linux 85 
test 30  
안녕하세요 95  
Linux 85

이 때는 sort를 사용할 수 있습니다:

$ sort  testfile1 | uniq
안녕하세요 95  
Linux 85 
test 30

각 행이 파일에서 나타나는 횟수를 계산하다:

$ sort testfile1 | uniq -c
   3 안녕하세요 95  
   3 Linux 85 
   3 test 30

파일에서 중복된 행을 찾아내기:

$ sort testfile1 | uniq -d
안녕하세요 95  
Linux 85 
test 30

Linux 명령어大全