我有两个文件,team1.txt 和 team2.txt
团队1.txt =========== 亚历克斯 鲍勃 查理 大卫
团队2.txt =========== 亚历克斯 查理 本杰明 泽德 诺亚
我想使用 unix 命令输出 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 中的 Alex 没有。也就是说:你为什么不直接使用
grep -f team1.txt team2.txt
Alex
Charlie
这很有效(我清理了多余的空间),并且只需要调用一次命令。