天天看点

Bash中的字符串截取

1. 按子串分割截取

${varible#*string}               从左往右,删除最短的一个以string结尾的子串,即截取第一个string子串之后的字符串

${varible##*string}             从左往右,删除最长的一个以string结尾的子串,即截取最后一个string子串之后的字符串

${varible%string*}              从右往左,删除最短的一个以string开头的子串,即截取最后一个string子串之前的字符串

${varible%%string*}          从右往左,删除最长的一个以string开头的子串,即截取第一个string子串之前的字符串

例如:

export TEST=123abc456abc789

echo ${TEST#*abc}          ===>删掉123abc剩下456abc789

echo ${TEST##*abc}       ===>删掉123abc456abc剩下"789

echo ${TEST%abc*}        ===>删掉abc789剩下123abc456

echo ${TEST%%abc*}    ===>删掉abc456abc789剩下123

2. 固定位置截取

${varible:start:len}:截取变量varible从位置start开始长度为len的子串。第一个字符的位置为0。

例如:

export TEST=123abc456abc789

echo ${TEST:0:3}          ===>"123"

echo ${TEST:3:3}           ===>"abc"