왜 xargs + grep 콤보가 제대로 작동하지 않습니까?


0

두 파일, team1.txt 및 team2.txt가 있습니다.

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

유닉스 명령을 사용하여 team1과 team2에있는 사람들을 출력하고 싶습니다.

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

문제는 이것이 잘못된 것입니다. Alex와 Charlie는 모두 team1과 team2에 있습니다. 하지만 웬일인지 grep 첫 번째 경기가 끝난 후 중단됩니다. 왜 이런거야? xargs 에서 모든 행에 grep을 실행해야합니다. team1.txt.

답변:


1

team1.txt에있는 Alex가 후행 공백을 가지고 있기 때문입니다. team2.txt에있는 파일은 그렇지 않습니다. 그 말 : 왜 그냥 사용하지 마십시오

grep -f team1.txt team2.txt 
Alex
Charlie

이 작품 (나는 여분의 공간을 청소) 잘하고, 오직 필요합니다 하나의 명령이 한 번 호출되었습니다.


네 말이 맞아, 지금 작동 해! 후행 공백 ... 위의 명령을 사용할 수없는 이유는 원래 문제가 내가 준 예제와 같이 간단하지 않기 때문입니다. team2.txt에는 이름이있는 각 줄마다 다른 텍스트가 많이 있습니다.
ktm5124

여전히, 당신이 할 수있는 사실은 알고있는 것이 좋습니다 :-)
ktm5124
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.