我知道你可以在grep中使用正則表達式,並使用文件中的模式來搜索另一個文件。但是,你能結合這兩種選擇嗎?在使用grep時使用正則表達式,同時使用兩個文件
例如,從模式來自的文件(使用來自文件的使用模式的-f選項),我只想使用第一列搜索第二個文件。
我嘗試這樣做:
grep -E '^(*)\b' -f file_1 file_2 > file_3
從file_1與*通配符的grep的第一列,但它不工作。有任何想法嗎?
我知道你可以在grep中使用正則表達式,並使用文件中的模式來搜索另一個文件。但是,你能結合這兩種選擇嗎?在使用grep時使用正則表達式,同時使用兩個文件
例如,從模式來自的文件(使用來自文件的使用模式的-f選項),我只想使用第一列搜索第二個文件。
我嘗試這樣做:
grep -E '^(*)\b' -f file_1 file_2 > file_3
從file_1與*通配符的grep的第一列,但它不工作。有任何想法嗎?
grep不使用通配符作爲模式,它使用正則表達式,所以(*)
沒什麼意義。
如果你想從文件中提取的第一列,使用特殊的-
(即標準輸入)作爲源文件使用cut -f1
或awk '{print $1}'
(或sed
或perl
或任何提取它),重定向到grep
:
cut -f1 file1 | grep -f- file_2 > file_3
謝謝。它工作得很好。不知道grep的 - 技巧:) – JFS31
如果你還想我可以提供一個例子,但答案我已經解決了我的問題。從標準輸入中挑戰是這裏的解決方案。我不知道這是可能的^^ – JFS31