我试图编写一个条件,以适合所有以空格/制表符开头的行和单词路径
/sPath.* - simple regexp?
我发现在Bash 4. *它应该看起来像:
if [[ $LINE =~ "[[:space:]]Path" ]]
但出于某种原因这种情况不起作用。
if [[ $LINE =~ [[:space:]] ]]
正常工作,并显示带有空格/标签的所有行。
答案 0 :(得分:2)
从version 3.2 onwards开始,不得在Bash中引用模式(即正则表达式):
- Bash的新功能
醇>...
F。现在引用[[command' s =〜运算符]的字符串参数 强制字符串匹配,与其他模式匹配运算符一样。
换句话说,引用被认为是正则表达式本身的一部分(文字"
)。
此外,最好引用变量$LINE
,以防止错误,如果它是空的:
if [[ "$LINE" =~ [[:space:]] ]]
答案 1 :(得分:0)
最好使用:
[[ "$LINE" =~ [[:blank:]] ]]
LINE
[[:blank:]]
匹配,相当于空格OR标签