Por que essa combinação xargs + grep não funciona corretamente?

0

Eu tenho dois arquivos, team1.txt e team2.txt

team1.txt
===========
Alex 
Bob
Charlie
David
team2.txt
===========
Alex
Charlie
Benjamin
Zed
Noah

Eu quero mostrar as pessoas que estão na equipe1 e na equipe2 usando um comando unix.

$ cat team1.txt | xargs grep -s team2.txt -e
team2.txt:Alex

O problema é que isso está incorreto. Tanto Alex quanto Charlie estão no team1 e no team2. Mas por algum motivo grep pára após a primeira partida. Por que é isso? xargs deve estar executando o grep em todas as linhas de team1.txt .

    
por ktm5124 12.03.2013 / 00:41

1 resposta

1

Isso porque seu Alex em team1.txt tem um espaço à direita e aquele em team2.txt não. Dito isso: por que você não usa apenas

grep -f team1.txt team2.txt 
Alex
Charlie

Isso funciona (eu limpei o espaço extra) bem, e só requer um comando invocado uma vez.

    
por 12.03.2013 / 00:58