我想识别字符串的最后一个字符,我正在使用:
访问最后一个字符echo "${VAR: -1}"
如果是角色,我想在角色前添加。(点),如果是数字则不做任何操作。
答案 0 :(得分:1)
expr match ${VAR: -1} '.*[0-9]' >/dev/null || VAR="${VAR:0:`expr ${#VAR} - 1`}.${VAR: -1}"
说明:
expr match ${VAR: -1} '.*[0-9]' >/dev/null
如果最后一个字符是数字
,则第一个表达式返回1VAR="${VAR:0:`expr ${#VAR} - 1`}.${VAR: -1}"
如果表达式返回1,则该行的其余部分将var分配给var中的所有字符,但不包括最后一个字符,请附加“。”字符,并附加最后一个字符。