在Bash中实现删除字符串最后n个字符¶
Bash内置了删除字符串指定数量字符的功能,非常简单:
假设字符串变量
$var
内容是myfile.rtf
,需要删除.rtf
,则使用:var2=${var%.rtf}
如果要删除
.
以及之后的字符,则可以使用通配符:var2=${var%.*}
如果要删除少量字符,可以使用
?
指代字符,例如要删除最后4个字符,则使用:;var2=${var%????}
这里每个 ?
表示一个字符
最新的bash还支持如下方式删除最后4个字符:
var2=${var:0:${#var}-4}
这里 ${#var}
其实就是获得变量 $var
的字符串长度
也可以简写成:
var2=${var::-4}
如果要删除最后哦一个字符,可以采用:
var2=${var:0:-1}
备注
也可以使用 sed 来删除最后的字符(行编辑)