我在写一个使用跟踪路径的脚本。我正在遍历跟踪路由的每一行,然后遍历每个单词(由空格分隔)。但是,有时跟踪路由返回一个*字符,这会在回显时引起问题(文件名是输出的)。
我一直在摆弄RegEx,到目前为止我已经想出了这样的方法:
if [[ $item =~ ^\d ]];项目是跟踪路由的一部分。
对于跟踪路由行中的每一项,我只想检查第一个字符是否等于一个数字,然后相应地继续。
发布于 2016-04-07 11:17:54
\d在POSIX正则表达式中不受支持(由Bash使用)。您需要用[0-9]替换它,如下所示:
if [[ $item =~ ^[0-9] ]];还可以使用[:digit:]使阅读变得更容易:
if [[ $item =~ ^[[:digit:]] ]];发布于 2016-04-07 11:18:47
不需要使用regex就足够了:
[[ $item == [0-9]* ]] && echo "it starts with a digit"您还可以使用:
[[ $item == [[:digit:]]* ]]https://stackoverflow.com/questions/36474576
复制相似问题