在bash中获取小写子字符串

时间:2015-09-07 16:23:36

标签: string bash

我已经发现如何将bash中的字符串作为小写字母:

> multi_case='MULTIcaseSTRING'
> echo ${multi_case,,}
multicasestring

...以及如何获取字符串的最后两个字母:

> echo ${multi_case:(-2)}
NG

......但我不知道如何将它们结合起来。

如何以小写获取最后两个字母?如果它有帮助,我知道字符串总是两到五个字符长。

理想情况下,我正在寻找一个相当短的单行。

2 个答案:

答案 0 :(得分:2)

你可以"滥用"它的for循环(如果你确定该变量不包含任何通配符或空格):

for i in ${multi_case,,}; do echo ${i:(-2)}; done

但在实践中,我会选择一个临时变量:

TMP=${multi_case,,}; echo ${TMP:(-2)}

答案 1 :(得分:1)

不是纯粹的bash,但您可以使用tr以单行完成此操作:

multi_case='MULTIcaseSTRING'
tr '[[:upper:]]' '[[:lower:]]' <<< "${multi_case:(-2)}"
ng