데이터 추출시 uniq 명령 목록

데이터 추출시 uniq 명령 목록



데이터 추출 작업을 할 때 uniq 명령에 대해 가끔 모르겠지만 이것을 보면 괜찮습니다!
그런 다음 uniq 명령뿐만 아니라 comm 명령도 함께 작성했습니다.

샘플 텍스트



다음 두 파일을 예로 설명합니다.

A.txt
A
B
C
D
E

B.txt
B
D
X
Y
Z 

A ANDNOT B




「A라는 마스터의 리스트로부터 B에 포함되어 있는 것을 제외한다」라고 하는 케이스.

uniq
% sort {A,B,B}.txt | uniq -u > C.txt

실행 예
% sort {A,B,B}.txt | uniq -u
A
C
E

comm
% comm -23 <(sort -u A.txt) <(sort -u B.txt) > C.txt

실행 예
% comm -23 <(sort -u A.txt) <(sort -u B.txt)
A
C
E

B ANDNOT A




상기의 「A ANDNOT B」의 케이스로 「B에 있는 데이터는 A에도 절대로 포함되어 있을 것」이라고 하는 전제의 때,
만약을 위해 「X나 Y나 Z와 같은 이분자가 존재하는지 어떤지」를 확인하는 케이스.

uniq
% sort {A,A,B}.txt | uniq -u > C.txt

실행 예
% sort {A,A,B}.txt | uniq -u
X
Y
Z

comm
% comm -13 <(sort -u A.txt) <(sort -u B.txt) > C.txt

실행 예
% comm -13 <(sort -u A.txt) <(sort -u B.txt)
X
Y
Z 

A AND B




「A와 B 어느 쪽에도 포함되어 있는 것을 추출한다」라고 하는 케이스.

uniq
% sort {A,B}.txt | uniq -d > C.txt

실행 예
% sort {A,B}.txt | uniq -d
B
D

comm
% comm -12 <(sort -u A.txt) <(sort -u B.txt) > C.txt

실행 예
% comm -12 <(sort -u A.txt) <(sort -u B.txt)
B
D

A OR B




「A와 B 어느 쪽에 포함되어 있는 것을 모두 추출한다」라고 하는 케이스.

uniq
% sort {A,B}.txt | uniq > C.txt

실행 예
% sort {A,B}.txt | uniq
A
B
C
D
E
X
Y
Z

comm
% comm <(sort -u A.txt) <(sort -u B.txt) | tr -d '\t' > C.txt

실행 예
% comm <(sort -u A.txt) <(sort -u B.txt) | tr -d '\t'
A
B
C
D
E
X
Y
Z

A XOR B




배타적 논리합.
「A와 B 어느쪽에도 포함되어 있는 것만 제외한다」라고 하는 케이스.

uniq
% sort {A,B}.txt | uniq -u > C.txt

실행 예
% sort {A,B}.txt | uniq -u
A
C
E
X
Y
Z

comm
% comm -3 <(sort -u A.txt) <(sort -u B.txt) | tr -d '\t' > C.txt

실행 예
% comm -3 <(sort -u A.txt) <(sort -u B.txt) | tr -d '\t'
A
C
E
X
Y
Z 

좋은 웹페이지 즐겨찾기