String bash截断字符串的最后n个字符

String bash截断字符串的最后n个字符,string,bash,truncation,String,Bash,Truncation,如何在bash中截断字符串的最后n个字符 在python中,我将使用 new_string = var_name[:-n] 在bash中有这样一个简单的解决方案吗 您可以在BASH字符串函数中执行此操作: s='123456' echo "${s:0: -2}" 1234 echo "${s:0: -3}" 123 使用sed var=$(sed 's/.{n}$//' <<< "$str") var=$(sed's/{n}$/'您可以这样使用sed: $ var=lk

如何在bash中截断字符串的最后n个字符

在python中,我将使用

new_string = var_name[:-n]

在bash中有这样一个简单的解决方案吗

您可以在BASH字符串函数中执行此操作:

s='123456'
echo "${s:0: -2}"
1234

echo "${s:0: -3}"
123
使用sed

var=$(sed 's/.{n}$//' <<< "$str")

var=$(sed's/{n}$/'您可以这样使用sed:

$ var=lknjn
$ newvar=$(echo $var |sed 's/n$//g')
$ echo $newvar
lknj

很好!请注意,
${s::-3}
是等效的。也就是说,
0
是第二个块的默认值。${s:-2}和${s:0:-2}都在命令行上工作,但当我将它们放在bash脚本中时,它会返回一个错误“bash_test.sh:第5行:-2:子字符串表达式<0”您确定第一行是
#!/bin/bash
,还是使用
bash./script.sh