shell 经常要对文件名进行处理,比如去除路径只保留文件名。
很方便的方法如下:
${varible#*string} 从左往右,删除最短的一个以string结尾的子串,即截取第一个string子串之后的字符串
${varible##*string} 从左往右,删除最长的一个以string结尾的子串,即截取最后一个string子串之后的字符串
${varible%string*} 从右往左,删除最短的一个以string开头的子串,即截取最后一个string子串之前的字符串
${varible%%string*} 从右往左,删除最长的一个以string开头的子串,即截取第一个string子串之前的字符串
总结起来:从左向右#,从右向左%,*在哪删除那。
另外也可以从固定位置截取。
${varible:start:len}:截取变量varible从位置start开始长度为len的子串。第一个字符的位置为0。
网友评论