shell脚本对于字符串的过滤规则的写法真的是晦涩难懂,不得已,整理了下高频用法,方便查阅。
假设定义了一个变量为:
var=/a/b/c/file.txt
可以用${ }分别替换得到不同的值:
${var#*/}:删掉第一个 / 及其左边的字符串,如下图所示:
${var##*/}:删掉最后一个 / 及其左边的字符串,如下图所示:
以下都是类似,不再逐一测试
${var#*.}:删掉第一个 . 及其左边的字符串
${var##*.}:删掉最后一个 . 及其左边的字符串
${var%/*}:删掉最后一个 / 及其右边的字符串
${var%%/*}:删掉第一个 / 及其右边的字符串:(空值)
${var%.*}:删掉最后一个 . 及其右边的字符串:/dir1/dir2/dir3/my.file
${var%%.*}:删掉第一个 . 及其右边的字符串:/dir1/dir2/dir3/my
注意:
单一符号是最小匹配;两个符号是最大匹配