bash escape~tilde

时间:2013-03-25 22:30:46

标签: regex bash

是否需要在bash脚本中转义波形符?

我试图用\〜逃避它,但它没有帮助。如果我删除〜字符,下面的代码按预期工作。

            if ! [[ "$line" =~ ^[0-9a-zA-Z-~]+$ ]]; then
                    echo "skipping .. $line"
                    continue
            fi

如何在上面的表达式中添加波形符?

1 个答案:

答案 0 :(得分:8)

不要放〜后 - 。将正则表达式更改为:

if ! [[ "$line" =~ ^[0-9a-zA-Z~-]+$ ]]; then

你会没事的。

请查看this post,了解更多解释为何连字符可能是班级的最后一个元素。