字符处理几个特殊约定

/#代表截掉开始

1
2
3
4
5
chaosbom@chaosbomPC:~$ file="thisfile.txt"
chaosbom@chaosbomPC:~$ echo ${file#*.}
txt
chaosbom@chaosbomPC:~$ echo ${file#*i}
sfile.txt

%代表截掉结尾

1
2
3
4
5
chaosbom@chaosbomPC:~$ file="thisfile.txt"
chaosbom@chaosbomPC:~$ echo ${file%e.*}
thisfil
chaosbom@chaosbomPC:~$ echo ${file%.*}
thisfile

//代表取所有(相对应未明确所有则是第一个)

1
2
3
4
5
chaosbom@chaosbomPC:~$ file="thisfile.txt"
chaosbom@chaosbomPC:~$ echo ${file//i/I}
thIsfIle.txt
chaosbom@chaosbomPC:~$ echo ${file//i}
thsfle.txt

/a/b 表示符合模式a的字符串将被b字符串替换,不指定b字符串则是删除。
如果被替换串包含/字符,那么要转义,写成/

灵感来源:
http://blog.csdn.net/guojin08/article/details/38704823