如何在ksh中删除字符串变量的最后一个字符?

6
我有一个字符串变量,想要删除它的最后一个字符。 例如:从"testing1"转换成"testing"。在KSH中该如何实现? 答案:可以使用以下命令删除字符串变量的最后一个字符: ${variable%?}
1个回答

14
var="testing1"
print ${var%?}

输出

testing
${var%?}是一个参数编辑特性。'%'表示从右侧删除并期望有一个模式跟随。在你的例子中,该模式可以仅为字符 '1'(不带引号)。我使用通配符'?'以便去除任何单个字符。您可以使用'*'字符表示所有字符,但通常您想将其与前面的某些字符捆绑在一起,例如 echo ${var%i*} 将仅给您返回test作为结果。还有'%%'变体和'#'和'##'从字符串左侧开始的变体。

希望这能帮到您。


如果在for循环中删除了第i个位置,如何编写代码?(例如)输入:abcde,第一次迭代输出:abcde,第二次迭代输出:abcd,第三次迭代输出:abc - dcdum2018
变量="abcde" ; for i in {1..2} ; do 变量=${变量%%?} ; done ; echo $变量。这个命令在 ksh 下可以使用,对于 bash 尚不确定。如果你想删除末尾的 3 个字符,可以使用 echo ${变量%%???}。祝好运! - shellter

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接