Shell脚本(Bash)中如何移除字符串末尾指定个数的字符?
Bash脚本中移除变量末尾4个字符的实现方法
下面是几种实用的方式,帮你把reponame变量的最后4个字符去掉,赋值给新变量repo:
方法一:Bash参数扩展(推荐)
这是Bash原生的字符串处理方式,高效且不需要调用外部命令:
reponame="testrepo.git" repo="${reponame::-4}" echo "$repo" # 输出:testrepo
${reponame::-4}的含义是:从字符串开头截取,直到倒数第4个字符的位置,刚好去掉末尾的4个字符。
方法二:使用cut命令
适用于单字节字符场景,通过字符位置截取:
reponame="testrepo.git" # 先获取字符串长度,再计算截取的结束位置 repo=$(echo "$reponame" | cut -c 1-$(( ${#reponame} - 4 ))) echo "$repo"
${#reponame}用于获取变量的字符长度,减去4后得到需要截取的最后位置,cut -c按字符位置完成截取。
方法三:使用sed命令
通过正则匹配替换掉末尾4个字符:
reponame="testrepo.git" repo=$(echo "$reponame" | sed 's/.\{4\}$//') echo "$repo"
正则表达式.\{4\}$匹配行尾的任意4个字符,替换为空字符串即可完成截取。
内容的提问来源于stack exchange,提问作者Raj
相关产品推荐
相关产品推荐

