"虽然读LINE做"和grep问题

Kev*_*vin 4 bash grep while-loop cat

我有两个文件.

file1.txt:  
Afghans  
Africans  
Alaskans  
...  
Run Code Online (Sandbox Code Playgroud)

其中file2.txt包含网页上wget的输出,所以这是一个很大的混乱,但确实包含了第一个列表中的许多单词.

Bashscript:

cat file1.txt | while read LINE; do grep $LINE file2.txt; done
Run Code Online (Sandbox Code Playgroud)

这没有按预期工作.我想知道为什么,所以我在循环中回显了$ LINE变量并添加了一个睡眠1,所以我可以看到发生了什么:

cat file1.txt | while read LINE; do echo $LINE; sleep 1; grep $LINE file2.txt; done
Run Code Online (Sandbox Code Playgroud)

终端中的输出看起来像这样:

Afghans
非洲人
阿拉斯加人
阿尔巴尼亚人
美国人
grep:中文:没有这样的文件或目录
:没有这样的文件或目录
阿拉伯人
阿拉伯人
阿拉伯人/东印度人
:没有这样的文件或目录
阿根廷
亚美尼亚人
亚洲
亚洲印第安人
:没有这样的文件或目录
file2.txt:亚洲火影忍者
. ..

所以你可以看到它终于找到了"亚洲"这个词.但为什么会说:

没有相应的文件和目录

有什么奇怪的事情或我在这里错过了什么吗?

gle*_*man 5

关于什么

grep -f file1.txt file2.txt
Run Code Online (Sandbox Code Playgroud)