반응형
리눅스에서 txt파일 등 텍스트 파일들에 대해 중복 제거하는 명령어이다.
먼저 아래와 같이 파일이 있다고 보면.
#test.txt aaa aaa bbb bbb ccc ccc aaa bbb ccc |
uniq 명령어를 사용
uniq [-옵션] test.txt
#결과 aaa bbb ccc aaa bbb ccc |
연속된 중복들 된 값에만 대해 제거가 되기에 이렇게 나온다.
옵션은 아래 참고 바란다.
옵션 | 설명 |
-c | 같은 라인이 몇번 나오는지를 표시 |
-d | 중복되어 나오는 라인 중 한 라인만 표시 |
-D | 중복되는 모든 라인을 보여준다 |
-N | 필터링은 무시할 라인을 정한다. 시작 라인부터 N번째 라인까지는 검사하지 않는다. |
-i | 중복 라인을 한라인으로 생각하고 출력한다. |
-u | 중복 라인이 없는 것만 보여준다. |
-w | N번째 문자까지만 비교대상으로 하여 uniq 명령을 수행 |
-s | N번째 문자까지는 비교대상에서 제외하고 uniq 명령을 수행 |
-f | N번째 필드를 비교대상에서 제외하고 uniq명령을 수행 |
sort 명령어를 사용
sort [-옵션] -u test.txt
#결과 aaa bbb ccc |
정렬을 하고 중복제거를 하는 옵션을 주어서 중복이 제거 되었다.
파이프라인 을 사용하여 sort 와 uniq를 함께 사용해도 무방하다.
옵션은 아래와 같다.
옵션 | 설명 |
-n | 라인의 각 필드를 비교하는 대상을 숫자로 한정 |
-f | 영어를 정렬할 때, 대소문자 구별안함 |
-r | 출력 순서를 역순으로 |
-b | 앞에 붙는 공백 무시 |
-t | 필드 구분자 지정 |
-m | 정렬된 파일을 병합 |
-u | 정렬후, 중복행 제거 |
-o | 저장할 파일명을 명시, 명시하지 않으면 화면에 출력 |
awk 사용
사용법은 아래와 같다.
awk [OPTION...] [awk program] [ARGUMENT...] OPTION -F : 필드 구분 문자 지정. -f : awk program 파일 경로 지정. -v : awk program에서 사용될 특정 variable값 지정. awk program -f 옵션이 사용되지 않은 경우, awk가 실행할 awk program 코드 지정. ARGUMENT 입력 파일 지정 또는 variable 값 지정. |
- 첫번째 필드로 중복제거
awk '!seen[$1]++' 파일이름 - 전체라인으로 중복제거
awk '!seen[$0]++' 파일이름
반응형
'IT > Linux' 카테고리의 다른 글
vi 편집기 특정 문자열 검색 및 갯수 구하기 (19) | 2024.04.14 |
---|---|
특정 파일명이 들어간 파일만 삭제 (27) | 2024.04.12 |
Linux에서 Sleep 사용 (25) | 2024.04.03 |
기호 연결의 단계가 너무 많음 / too many levels of symbolic links (18) | 2024.03.15 |
tree 구조 ls (25) | 2024.03.04 |
댓글