У меня есть два файла, team1.txt и team2.txt

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

Я хочу вывести людей из команды team1 и team2 с помощью команды unix.

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

Проблема в том, что это неправильно. И Алекс, и Чарли находятся в команде 1 и команде 2. Но почему-то grep останавливается после первого матча. Почему это? xargs должен запускать grep в каждой строке из team1.txt .

1 ответ1

1

Это потому, что ваш Алекс в team1.txt имеет завершающий пробел, а тот, что в team2.txt - нет. Тем не менее, почему бы вам просто не использовать

grep -f team1.txt team2.txt 
Alex
Charlie

Это работает (я убрал лишнее пространство) хорошо, и требует только одну команду, вызываемую один раз.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .