Bash:常量字符串的子字符串

时间:2013-09-18 05:56:47

标签: string bash

我知道,有一种方法可以获得字符串变量的子字符串:

MY_STR=abacaba
echo ${MY_STR:2:6}

有没有办法让字符串的子字符串作为文字常量给出?类似的东西:

echo ${"abacaba":2:6}

4 个答案:

答案 0 :(得分:2)

您可以使用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

答案 1 :(得分:1)

如果你不介意使用剪切,你可以这样做:

  回声“abacaba”|切-c3-7

答案 2 :(得分:1)

没有,但你可以选择使用函数:

function getsub {
    sub="${1:$2:$3}"
}

getsub abacaba 2 6
echo "$sub"

function printsub {
    echo "${1:$2:$3}"
}

printsub abacaba 2 6

答案 3 :(得分:1)

AutoCompleteTextView可以处理字符串文字。

expr
  • STR:常量字符串。
  • POS:子字符串的第一个字符的索引(从1开始)。
  • LEN:子串的长度。

因此,在您的示例中,它应该是expr substr STR POS LEN