String Bash:常量字符串的子字符串
我知道,有一种方法可以获取字符串变量的子字符串:String Bash:常量字符串的子字符串,string,bash,String,Bash,我知道,有一种方法可以获取字符串变量的子字符串: MY_STR=abacaba echo ${MY_STR:2:6} 有没有一种方法可以获取作为文本常量给定的字符串的子字符串?比如: echo ${"abacaba":2:6} 您可以使用cut: $ echo abacaba | cut -c3-7 acaba 说出-c3-7将得到字符3到7(请注意,第一个字符由1表示) 要获取从第三个字符开始的所有字符,您可以说: $ echo abacaba | cut -c3- acaba 您还可
MY_STR=abacaba
echo ${MY_STR:2:6}
有没有一种方法可以获取作为文本常量给定的字符串的子字符串?比如:
echo ${"abacaba":2:6}
您可以使用
cut
:
$ echo abacaba | cut -c3-7
acaba
说出-c3-7
将得到字符3到7(请注意,第一个字符由1
表示)
要获取从第三个字符开始的所有字符,您可以说:
$ 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
- STR:常量字符串李>
- POS:子字符串的第一个字符的索引(从1开始)
- LEN:子字符串的长度
因此,在您的示例中,它应该是
expr substr'abacaba'3 6
这有什么用处(我记得我以前也希望能够做到这一点,但我真的不记得这个用例)?@AdrianFrühwirth,用于内联命令<代码>查找-execbash-c“echo\”{}\“| cut-c3-”代码>例如。