即,从ABCD
转化为ABC
你可以尝试:
sed s'/.$//'
使用的正则表达式是.$
.
是一个正则表达式元字符,用于匹配任何字符(除了换行符)$
是行尾锚点。通过使用$
,我们强制.
匹配最后一个字符
这将删除最后一个字符,无论它是什么:
$ echo ABCD | sed s'/.$//'
ABC
$ echo ABCD1 | sed s'/.$//'
ABCD
但是如果你想删除最后一个字符,只有当它是字母时,你可以这样做:
$ echo ABCD | sed s'/[a-zA-Z]$//'
ABC
$ echo ABCD1 | sed s'/[a-zA-Z]$//'
ABCD1
如果你正在使用shell,例如bash/ksh,就不需要调用外部命令。
s="ABCD"
echo ${s/%?/}
echo ${s:0:-1}
,它指定了你想要的第一个字符的索引(从开头开始为0
)和最后一个字符的索引,减号使索引相对于结尾计数(倒数第二个字符为-1
)。 - scottgwald