要回答您问题的标题,请指定剪切字符串中的最后 n 个字符,您可以使用 Bash 中的子字符串提取功能。
me@home$ A="123456"
me@home$ echo ${A:0:-2} # remove last 2 chars
1234
但是,根据您的示例,您似乎想要删除所有尾随逗号,在这种情况下你可以使用sed 's/,*$//'
.
me@home$ echo "ssl01:49188,ssl999999:49188,,,,," | sed 's/,*$//'
ssl01:49188,ssl999999:49188
或者,对于纯粹的 Bash 解决方案,您可以使用子字符串删除:
me@home$ X="ssl01:49188,ssl999999:49188,,,,,"
me@home$ shopt -s extglob
me@home$ echo ${X%%+(,)}
ssl01:49188,ssl999999:49188
我会用sed
如果需要将转换应用于整个文件,则使用 bash 子字符串删除方法;如果目标字符串已在 bash 变量中,则使用 bash 子字符串删除方法。