参考:https://blog.csdn.net/qq_30130417/article/details/80911989
在shell里掌握这一本领非常实用,虽然##、%%的操作其实是将文本去掉,但这其实就是提取我们想要的文本
符号介绍
- #:当要去掉的文本位于左侧时使用
- %:当要去掉的文本位于右侧时使用
- 要定位的字符:比如要定位的字符是“.”,则是“.”
-
*:与#或%搭配使用
当与#搭配时,“ * ”在要定位的字符的左边
当与%搭配时,“ * ”在要定位的字符的右边 - 1个#表示要定位的字符出现的第一个位置
2个#(即##)表示要定位的字符出现的最后一个位置 -
相反地:
2个%表示要定位的字符出现的第一个位置
1个%(即%%)表示要定位的字符出现的最后一个位置
实例
file=svm_pseaac_maccs.csv
想要的字符串 | 含义 | 代码 |
---|---|---|
svm | 删掉第一个_及其右边的字符串 | ${file%%_*} |
svm_pseaac_maccs | 删掉第一个.(=最后一个)及其右边的字符串 | ${file%%.*}或${file%.*} |
maccs.csv | 删掉最后一个_及其左边的字符串 | ${file##*_} |
pseaac_maccs.csv | 删掉第一个_及其左边的字符串 | ${file#*_} |
csv | 删掉第一个.(=最后一个)及其左边的字符串 | ${file#*.}或${file##*.} |