O comando comm
pode ser usado para comparar e contrastar dois arquivos classificados:
comm <(sort file.txt) <(cut -d: -f1 /etc/passwd | sort)
- A primeira coluna contém linhas do primeiro arquivo que não aparecem no segundo arquivo.
- A segunda coluna contém linhas do segundo arquivo que não aparecem no primeiro arquivo.
- A terceira coluna contém linhas que aparecem nos dois arquivos.
Você pode omitir uma ou duas colunas da saída de três colunas ( comm -13 ...
omitirá as colunas 1 e 3, por exemplo).
Não perguntado em sua pergunta, mas solicitado em um comando de acompanhamento, é como obter uma lista de nomes de usuários e extrair as entradas correspondentes de /etc/passwd
:
( echo root; echo sys ) | sed -r 's!(.*)!^:!' | grep -f - /etc/passwd
root:x:0:0:root:/root:/bin/bash
sys:x:3:3:sys:/dev:/usr/sbin/nologin