Bash如何获得字符串的倒数第二个?

时间:2018-01-03 04:43:53

标签: bash

获得字符串

的最后一个字符有一个很好的答案
str='abcd/'
echo "${str: -1}"

如何获得倒数第二,即返回'd'而不是'/'

2 个答案:

答案 0 :(得分:3)

正如您已经知道的那样,负面位置是相对于字符串的 end ,因此-1从最后一个字符开始,-2将从倒数第二个字符开始性格,等等。

但是,您使用的表单是获取子字符串的简化形式,它将所有字符从指定位置移到字符串末尾。

您还可以提供显式长度,以便从该位置开始获取有限数量的字符,因此,要获得倒数第二个字符,您只需要:

${str: -2:1}

bash文档的相关位是:

  

${parameter:offset}
  ${parameter:offset:length}

     

子串扩展。从length指定的字符开始,扩展到参数值的最多offset个字符。

     

如果省略length,则扩展为参数值的子字符串,从offset指定的字符开始,并延伸到值的末尾。

答案 1 :(得分:0)

使用冒号运算符

str='abcd/'
echo "${str: -2:-1}"

返回'd'