我知道,有一种方法可以获取字符串变量的子字符串:
MY_STR=abacaba
echo ${MY_STR:2:6}
有没有办法获取作为文字常量给出的字符串的子字符串?就像是:
echo ${"abacaba":2:6}
您可以使用cut
:
$ echo abacaba | cut -c3-7
acaba
说-c3-7
会得到字符 3 到 7(注意第一个字符用 表示1
)。
要获取从第 3 个开始的所有字符,您可以说:
$ echo abacaba | cut -c3-
acaba
您还可以使用tail
:
$ echo abacaba | tail -c+3
acaba
如果你不介意使用 cut 你可以这样做:
回声“蕉麻” | 切-c3-7
没有,但您可以有其他选择,例如使用函数:
function getsub {
sub="${1:$2:$3}"
}
getsub abacaba 2 6
echo "$sub"
function printsub {
echo "${1:$2:$3}"
}
printsub abacaba 2 6
expr
可以处理字符串文字。
expr substr STR POS LEN
所以在你的例子中,它应该是expr substr 'abacaba' 3 6