728x90
반응형
uinq 명령어
중복된 내용의 행이 연속으로 있으면 중복없이 하나의 행으로 만들어주는 명령어다.
sort 명령어와 주로 사용한다.
uinq [-c | -d | -u] [-i] [-f num] [-s chars] [input file [output file]]
[옵션]
-c : 각 출력 행 앞에 입력에서 중복된 행의 횟수를 출력
-d : 입력에서 중복된 행만 출력
-f num : 비교할 때 지정된 수 만큼 비교 대상에서 제외
-s chars : 하나의 행에서 지정된 수 만큼 문자를 비교대상에서 제외
-u : 원래 파일에서 연속으로 중복되지 않는 행만 출력
-i : 비교할 때 대소문자 구분 안함
uniq 명령어 옵션 사용
다음과 같이 중복된 파일을 하나 만들어보았다.
$ cat uniq1.txt
apple
apple
pineapple
strawberry
strawberry
strawberry
pineapple
strawberry
Apple
Apple
Apple
Apple
Strawberry
옵션없이 uniq 명령어를 사용해보자.
$ cat uniq1.txt | uniq
apple
pineapple
strawberry
pineapple
strawberry
Apple
Strawberry
결과를 확인해보면 연속으로 중복된 값만 사라진 것을 확인할 수 있다.
중복되는 값이 있더라도 연속적으로 중복이 되지 않으면 제거할 수 없다.
그래서 모든 중복된 값을 제거하기 위해서 sort 명령어를 같이 사용하는 이유이기도 하다.
[ -c ]
-c 옵션을 사용하면 중복된 값이 몇개가 있는지 출력해준다.
jaynam:linux_commands/ $ cat uniq1.txt | uniq -c
2 apple
1 pineapple
3 strawberry
1 pineapple
1 strawberry
4 Apple
1 Strawberry
결과를 확인해보면,
apple 은 2개가 중복이고, Apple은 4개가 중복되어 있다는 것을 알 수 있다.
[ -i ]
-i 옵션은 대소문자 구분없이 중복을 제거해준다. 다음과 같은 파일을 만들어 명령어를 사용해봤다.
$ cat uniq2.txt
apple
apple
Apple
Apple
strawberry
Apple
Apple
Apple
Apple
Strawberry
$ cat uniq2.txt | uniq -c -i
4 apple
1 strawberry
4 Apple
1 Strawberry
apple 하고 Apple 을 대소문자 구분 없이 중복으로 본다는 것을 알 수 있다.
그럼 이번에는 sort 명령어와 같이 사용해보자.
$ cat uniq3.txt
apple
apple
pineapple
strawberry
apple
apple
pineapple
strawberry
strawberry
apple
apple
pineapple
strawberry
$ cat uniq3.txt | sort
apple
apple
apple
apple
apple
apple
pineapple
pineapple
strawberry
strawberry
strawberry
strawberry
$ cat uniq3.txt | sort | uniq -c
6 apple
2 pineapple
4 strawberry
중복된 값이 뒤죽박죽 섞여있기 때문에 sort 명령어를 통해서 정렬해준 후
uniq 명령어를 사용해서 중복된 값을 제거해주고 몇 개가 중복되어있었는지 확인할 수 있다.
이 외에도 다른 옵션이 있지만 주로 사용하는 옵션만 다뤄보았다.
다른 옵션이 궁금하다면 직접 사용해보는걸로 ㅎㅎ😆
728x90
반응형
'리눅스 > Command' 카테고리의 다른 글
리눅스 grep 명령어 (0) | 2021.06.08 |
---|---|
리눅스 find 명령어 (0) | 2020.12.13 |
리눅스 sort 명령어 (2) | 2020.11.04 |
리눅스 lsof 명령어 (0) | 2019.10.03 |
리눅스 df 명령어와 du 명령어 (0) | 2019.10.03 |