如何在Bash中将变量的最后一个字符转换为小写?
如何仅将Bash变量的最后一个字符转为小写?
你可以通过Bash参数扩展或者sed命令实现只转换变量最后一个字符为小写,以下是两种可行方案:
方案一:使用Bash参数扩展
利用参数提取分离变量的前半部分和最后一个字符,再单独转换最后一个字符的大小写:
MY_STRING="THE_NAME_UPPER_A" MY_NEW_STRING="${MY_STRING%?}${MY_STRING: -1,,}" # 验证结果 echo "$MY_NEW_STRING" # 输出 THE_NAME_UPPER_a
${MY_STRING%?}:移除变量最后一个字符,得到THE_NAME_UPPER_${MY_STRING: -1,,}:提取变量最后一个字符并转为小写,得到a- 两者拼接后即为目标结果
方案二:使用sed命令
通过正则匹配定位最后一个字符,再转换其大小写:
MY_STRING="THE_NAME_UPPER_A" MY_NEW_STRING=$(echo "$MY_STRING" | sed 's/\(.*\)\(.\)/\1\L\2/') # 验证结果 echo "$MY_NEW_STRING" # 输出 THE_NAME_UPPER_a
\(.*\):匹配变量中除最后一个字符外的所有内容\(.\):匹配最后一个字符\1:保留前面匹配的内容,\L\2将最后一个字符转为小写
内容的提问来源于stack exchange,提问作者A.Pissicat
相关产品推荐
相关产品推荐

