Tại sao combo xargs + grep này không hoạt động đúng?


0

Tôi có hai tệp, team1.txt và team2.txt

team1.txt
===========
Alex 
Bob
Charlie
David
team2.txt
===========
Alex
Charlie
Benjamin
Zed
Nô-ê

Tôi muốn xuất ra những người ở cả team1 và team2 bằng lệnh unix.

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

Vấn đề là điều này không chính xác. Cả Alex VÀ Charlie đều ở đội1 và đội2. Nhưng vì một số lý do grepdừng lại sau trận đấu đầu tiên. Tại sao lại thế này? xargsnên chạy grep trên mỗi dòng từ team1.txt.

Câu trả lời:


1

Đó là bởi vì Alex của bạn trong team1.txt có khoảng trắng ở cuối và cái trong team2.txt thì không. Điều đó nói rằng: tại sao bạn không sử dụng

grep -f team1.txt team2.txt 
Alex
Charlie

Công việc này (tôi đã dọn sạch không gian thừa) tốt và chỉ yêu cầu một lệnh được gọi một lần.


Bạn nói đúng, nó hoạt động ngay bây giờ! Không gian dấu ... Lý do tôi không thể sử dụng lệnh của bạn ở trên là vì vấn đề ban đầu không đơn giản như ví dụ tôi đã đưa ra - team2.txt có một loạt các văn bản khác trên mỗi dòng có tên trong đó.
ktm5124

Tuy nhiên, thực tế là bạn có thể làm điều đó rất tốt để biết :-)
ktm5124
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.