在Bash中引用正则表达式



我试图写一个条件,将适合所有的行以空格/制表符和word Path

/sPath.* - simple regexp?

我发现在Bash 4。*它应该看起来像:

if [[ $LINE =~ "[[:space:]]Path" ]]


if [[ $LINE =~ [[:space:]] ]]

工作良好,并显示所有行与空格/制表符

从3.2版本开始,模式(即正则表达式)在Bash中不能被引用:

    Bash的新特性

f。现在为[[命令的=~操作符引用字符串参数强制字符串匹配,与其他模式匹配操作符一样。

换句话说,引号被认为是正则表达式本身的一部分(文字")。

此外,最好引用变量$LINE,以防止错误,如果它是空的:

if [[ "$LINE" =~ [[:space:]] ]]

最好使用:

[[ "$LINE" =~ [[:blank:]] ]]
    引用变量LINE
  1. 匹配字符类[[:blank:]],相当于空格或制表符

最新更新