두 개의 순수 데이터 세트 간의 차이점과 중복을 나열합니다.

두 개의 순수 데이터 세트 간의 차이점과 중복을 나열합니다.

중복 가능성:
파일을 컬렉션으로 처리하고 해당 파일에 대한 컬렉션 작업을 수행하는 Linux 도구

A와 B라는 두 개의 데이터 세트가 있습니다. 각 데이터 세트의 형식은 행당 하나의 숫자입니다. 예를 들어,

12345
23456
67891
2345900
12345

A의 일부 데이터는 데이터 세트 B에 포함되지 않습니다. 이 모든 데이터를 A에 어떻게 나열하고, A와 B가 공유하는 모든 데이터를 어떻게 나열합니까? Linux/UNIX 명령을 사용하여 이를 수행하는 방법은 무엇입니까?

답변1

comm명령을 사용하십시오 .

파일을 나열하는 listA경우 listB:

comm listA listB

기본적으로 comm은 3개의 열을 반환합니다. 목록A에만 있는 항목, 목록B에만 있는 항목, 두 목록에 공통되는 항목입니다.

, 또는 arg 를 사용하여 -1개별 -2열을 억제할 수 있습니다 -3.

답변2

이렇게 하면 A에는 있지만 B에는 없는 고유한 항목이 제공됩니다.

cat A|perl -ne '$z=$_;chomp($z);$y=`grep $z B`;if ($y== "") {print "\n$z";}'|sort -u

그러면 A와 B의 공통 항목 목록이 제공됩니다.

cat A |xargs -i grep {} B|sort -u

관련 정보