查找具有两端索引的子字符串

时间:2015-12-08 10:18:54

标签: linux bash

我正在尝试从最后一个

中提取一个带有起始索引和索引的子字符串

例如

val = "SUBSTRING"
|||||||||||||||||
12345678901234567

我需要来自start index = 8和end index = -2的字符串(子字符串的长度当然是变量)

我知道这是一个非常基本的问题但有没有直接的方法可以使用单一命令来完成?

2 个答案:

答案 0 :(得分:2)

您可以使用参数子字符串扩展:

string='val = "SUBSTRING"'
echo "${string:7:-1}"

起始位置为7,编号从0开始。

  

如果length的计算结果小于零,则将其解释为距参数值末尾的偏移量而不是多个字符,并且扩展名是两个偏移量之间的字符。

答案 1 :(得分:0)

尝试使用cut -c startIndx-stopIndx

例如:

   1) start=5;stop=9; echo "the rain in spain" | cut -c $start-$(($stop-1))

输出:下雨

   2) start=5;stop=9; echo "theRainInSpain" | cut -c $start-$(($stop-1))

输出: ainI