我正在尝试为 grep 提供屏幕分辨率的正则表达式模式(例如1280x720
),如下所示
[0-9]{3,}x[0-9]{3,}
但它似乎没有工作。
以下有效,但不能转化为上述。
[0-9][0-9][0-9][0-9]*x[0-9][0-9][0-9][0-9]*
这是一个 ERE(扩展正则表达式),grep 使用 BRE(默认情况下是基本正则表达式。您可以转义 {}:
grep '[0-9]\{3,\}x[0-9]\{3,\}'
或告诉 grep 将其解释为 ERE:
grep -E '[0-9]{3,}x[0-9]{3,}'
您的正则表达式似乎适用于 bash :
[[ 1280x720 =~ [0-9]{3,}x[0-9]{3,} ]] && echo OK
OK
如果你想使用grep
:
$ cat B
640x480
$
$ grep -c "[0-9]\{3,\}x[0-9]\{3,\}" B
1
$
$ grep --version
grep (GNU grep) 2.14