如何通过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。非常感谢。