如何通过bash、pipe选择不同的线?

如何通过bash、pipe选择不同的线?,bash,grep,pipe,Bash,Grep,Pipe,我的任务 我有一个包含以下内容的文件a.txt。 aijdish uhuih buh iiu hhuih zhuh hiu d uhiuhg ui ... 我想选择带有以下单词的行:aijdish,d,buh。。。 我只知道我可以: cat A.txt | grep "aijdish" > temp.txt cat A.txt | grep "d" >> temp.txt cat A.txt | grep "buh" >> temp.txt ... 但是这次我有

我的任务
我有一个包含以下内容的文件a.txt。

aijdish uhuih
buh iiu hhuih
zhuh hiu
d uhiuhg ui
...
我想选择带有以下单词的行:
aijdish
d
buh
。。。 我只知道我可以:

cat A.txt | grep "aijdish" > temp.txt
cat A.txt | grep "d" >> temp.txt
cat A.txt | grep "buh" >> temp.txt
...

但是这次我有几千个单词需要选择,如何在bash下进行选择?

将要搜索的单词存储在一个文件(比如a.txt)中,然后编写一个脚本来搜索a.txt中的每一行并将其匹配到所需的文件中

将要搜索的单词存储在一个文件中(比如a.txt)然后编写一个脚本,搜索a.txt中的每一行,并将其匹配到所需的文件中

,因为您有许多要查找的单词,我建议将模式放入文件中,并使用greps
-f
选项:

$ grep -E "aijdish|d|buh" inputfile
aijdish uhuih
buh iiu hhuih
d uhiuhg ui
$ cat grep-pattern.txt
aijdish
buh
d

$ grep -f grep-pattern.txt inputfile
aijdish uhuih
buh iiu hhuih
d uhiuhg ui
但是,如果您有像d这样的单词,您可能需要添加
-w
选项,以便只匹配整个单词,而不是部分单词

grep -wf grep-pattern.txt inputfile

由于您有许多要查找的单词,我建议将该模式放入一个文件中,并使用greps
-f
选项:

$ cat grep-pattern.txt
aijdish
buh
d

$ grep -f grep-pattern.txt inputfile
aijdish uhuih
buh iiu hhuih
d uhiuhg ui
但是,如果您有像d这样的单词,您可能需要添加
-w
选项,以便只匹配整个单词,而不是部分单词

grep -wf grep-pattern.txt inputfile

鉴于模式中存在
d
,在grep调用中添加
-w
可能是一个好主意。鉴于模式中存在
d
,在grep调用中添加
-w
可能是一个好主意。谢谢,但当我有几千个不同的单词时,这并不太适用谢谢,但当我有几千个不同的单词时,这并不太适用。我知道,但我只想学习如何使用bash。谢谢,我知道,但我只想学习如何使用bash。非常感谢。