2013-07-30 51 views
1

我的任務
我有一個文件A.txt與以下內容。
如何通過bash,pipe選擇不同的行?

aijdish uhuih 
buh iiu hhuih 
zhuh hiu 
d uhiuhg ui 
... 

我想選擇用這句話線aijdishdbuh ... 我只知道我能:

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

我有幾千字的需要選擇這個時候,我該如何在bash下做到這一點?在文件中搜索

回答

3

匹配因爲你有很多你想看看我建議把圖案爲一個文件,並使用的話裏grep -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 
+3

考慮到模式中存在'd',將'-w'添加到grep的調用可能是一個好主意。 –

+0

好點,加入它。 – ahilsend

+0

謝謝ahilsend,它的工作原理 – sflee

0

商店的話(比如a.txt中),然後編寫腳本,針對搜索在A.TXT每一行,並在需要的文件

+0

我知道,但我想學習如何用bash來做到這一點。謝謝 – sflee

1
$ grep -E "aijdish|d|buh" inputfile 
aijdish uhuih 
buh iiu hhuih 
d uhiuhg ui 
+1

謝謝,但是當我有幾千個不同的單詞時,這不太適用 – sflee