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