我的任务
我有一个文件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下执行此操作?
答案 0 :(得分:3)
由于您想要查找多个单词,我建议将模式放入文件并使用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
答案 1 :(得分:1)
$ grep -E "aijdish|d|buh" inputfile
aijdish uhuih
buh iiu hhuih
d uhiuhg ui
答案 2 :(得分:0)
将要搜索的单词存储在文件中(例如a.txt),然后编写一个脚本,用于搜索a.txt中的每一行并在所需文件中将其匹配