如何查看文件是否在shell bash脚本中有后缀
这个问题在这里已经有了答案:
您可以使用匹配的运算符:
$ if [[ "abc.def" =~ . ]]; then echo "yes"; else echo "no"; fi
yes
$ if [[ "abcdef" =~ . ]]; then echo "yes"; else echo "no"; fi
no
如果点是字符串中的第一个或最后(或唯一)字符,则匹配。 如果您希望点的两边都有字符,则可以执行以下操作:
$ if [[ "ab.cdef" =~ ... ]]; then echo "yes"; else echo "no"; fi
yes
$ if [[ ".abcdef" =~ ... ]]; then echo "yes"; else echo "no"; fi
no
$ if [[ "abcdef." =~ ... ]]; then echo "yes"; else echo "no"; fi
no
你也可以使用模式匹配:
$ if [[ "ab.cdef" == *?.?* ]]; then echo "yes"; else echo "no"; fi
yes
$ if [[ ".abcdef" == *?.?* ]]; then echo "yes"; else echo "no"; fi
no
$ if [[ "abcdef." == *?.?* ]]; then echo "yes"; else echo "no"; fi
no
格雷格的维基对格式和正则表达式都有很好的参考
bash
支持glob风格的模式匹配:
if [[ "$file" = *?.?* ]]; then
...
fi
请注意,这也假设一个前缀 - 这也确保它不会匹配.
和..
目录。
如果你想检查一个特定的扩展名:
if [[ "$file" = *?.foo ]]; then
...
fi
echo "xxx.yyy" | grep -q '.'
if [ $? = 0 ] ; then
# do stuff
fi
要么
echo "xxx.yyy" | grep -q '.' && <one statement here>
#e.g.
echo "xxx.yyy" | grep -q '.' && echo "got a dot"
链接地址: http://www.djcxy.com/p/36189.html
上一篇: how to use if to see whether file has suffix in shell bash script
下一篇: How to run a shell script on a Unix console or Mac terminal?