写shell脚本的时候,经常需要做删除字符串的操作,经常忘记,这里记录一下。
str=aaa.bbb.ccc.ddd
str1=${str%.*}
str2=${str%%.*}
str3=${str#*.}
str4=${str##*.}
echo "str1 = " $str1
echo "str2 = " $str2
echo "str3 = " $str3
echo "str4 = " $str4
输出
str1 = aaa.bbb.ccc
str2 = aaa
str3 = bbb.ccc.ddd
str4 = ddd
含义
1)两个的比一个删除的多
2)% 删除后面的字符, # 删除前面的字符
3) * 表示任何字符
4) 注意的地方 (.* 和 *.)
方向
\%.* -- 删除后面的字符直到遇到字符 . 并包括 .
#*. -- 删除前面的字符直到遇到字符 . 并包括 .