差异,其中一个文件是正则表达式文件

时间:2014-10-05 10:52:24

标签: regex linux diff

所以基本上我有文件1,看起来像这样

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

我想使用diff来查看它是否与此文件2匹配:

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

我似乎无法弄清楚要传递给diff的哪些参数将第二个文件视为“正则表达式”文件。

PS:我想在diff中做到这一点。如果绝对不可能,我可以使用其他可用命令但不使用第三方工具。

1 个答案:

答案 0 :(得分: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