Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String Bash:常量字符串的子字符串_String_Bash - Fatal编程技术网

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-”例如。