2014-10-05 15 views
0

所以基本上我有文件1,看起來像這樣DIFF其中一個文件是正則表達式文件

We have 2 persons. 
Jack bought 3 cars. 
John purchased 5 bananas. 

我想用diff來看看它這個文件2相匹配:

.* 2 persons.* 
Jack .* 3 cars.* 
John .* 5 bananas.* 

我似乎無法找出通過diff來將第二個文件作爲「Regex」文件處理的參數。 PS:我想在差異中做到這一點。如果這是絕對不可能的,我可以使用其他可用的命令,但沒有第三方工具。

+0

差異不會像這樣工作,它會逐行比較兩個文件。檢查下面的grep答案 – 2014-10-05 20:02:54

回答

0

是的。這是不可能的,使用diff。沒有選項可以將文件解釋爲正則表達式。

你可以使用grep代替:

$ grep -Pzo '(?s).* 2 persons.*Jack .* 3 cars.*John .* 5 bananas.*' <<-'FILE' 
    We have 2 persons. 
    Jack bought 3 cars. 
    John purchased 5 bananas. 
FILE 

注:一些grep版本do not support it

+0

謝謝。有沒有辦法使用來自文件的正則表達式來提供grep? – Karim 2014-10-05 22:35:52

+0

@卡里姆:是的。運行'grep --help'來找出選項。這可能是'-f'。 – jfs 2014-10-05 22:41:46