Isso lhe dará os itens exclusivos que existem em A, mas não em B:
cat A|perl -ne '$z=$_;chomp($z);$y='grep $z B';if ($y== "") {print "\n$z";}'|sort -u
Isso fornecerá a lista de itens comuns em A e B:
cat A |xargs -i grep {} B|sort -u
Eu tenho dois conjuntos de dados, A e B. O formato para cada conjunto de dados é um número por linha. Por exemplo,
12345
23456
67891
2345900
12345
Alguns dos dados em A não estão incluídos no conjunto de dados B. Como listar todos esses dados em A e como listar todos esses dados compartilhados por A e B. Como posso fazer isso usando o Linux / UNIX? comandos?
Use o comando comm
.
Se as listas estiverem nos arquivos listA
e listB
:
comm listA listB
Por padrão, comm retornará 3 colunas. Itens apenas na lista A, itens apenas na lista B e itens comuns a ambas as listas.
Você pode suprimir colunas individuais com -1
, -2
ou -3
arg.
Isso lhe dará os itens exclusivos que existem em A, mas não em B:
cat A|perl -ne '$z=$_;chomp($z);$y='grep $z B';if ($y== "") {print "\n$z";}'|sort -u
Isso fornecerá a lista de itens comuns em A e B:
cat A |xargs -i grep {} B|sort -u