也就是說,從ABCD
去 - >ABC
如何使用sed刪除最後一個字符?
17
A
回答
48
你可以試試:
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
8
如果你是你沒有調用外部命令唱一個外殼,例如bash/ksh
s="ABCD"
echo ${s/%?/}
+1
一個相關的bash解決方案'echo $ {s:0:-1}',它指定了你想要的第一個字符的索引(開頭是'0')和你想要的最後一個字符的索引,使索引計數相對於結尾(倒數第二個字符爲'-1')。 – scottgwald 2016-09-03 00:58:23
這有效......謝謝! – 2010-09-09 09:09:44
您的解釋非常感謝...謝謝! – 2010-09-09 09:25:32