2016-09-16 64 views
0

我知道你可以在grep中使用正則表達式,並使用文件中的模式來搜索另一個文件。但是,你能結合這兩種選擇嗎?在使用grep時使用正則表達式,同時使用兩個文件

例如,從模式來自的文件(使用來自文件的使用模式的-f選項),我只想使用第一列搜索第二個文件。

我嘗試這樣做:

grep -E '^(*)\b' -f file_1 file_2 > file_3 

從file_1與*通配符的grep的第一列,但它不工作。有任何想法嗎?

+0

如果你還想我可以提供一個例子,但答案我已經解決了我的問題。從標準輸入中挑戰是這裏的解決方案。我不知道這是可能的^^ – JFS31

回答

1

grep不使用通配符作爲模式,它使用正則表達式,所以(*)沒什麼意義。

如果你想從文件中提取的第一列,使用特殊的-(即標準輸入)作爲源文件使用cut -f1awk '{print $1}'(或sedperl或任何提取它),重定向到grep

cut -f1 file1 | grep -f- file_2 > file_3 
+0

謝謝。它工作得很好。不知道grep的 - 技巧:) – JFS31