输入:
i="Item1;Item2;Item3;;;;;;;;"
期望的输出:
i="Item1;Item2;Item3"
如何去掉最后几个分号?
我知道使用“sed”的一种方法:
sed 's/;$//'
但是,它只删除最后一个分号。反复运行它似乎并不实际。
最佳答案
您不需要为此使用外部实用程序。
$ input='Item1;Item2;Item3;;;;;;;;'
$ echo "${input%"${input##*[!;]}"}"
Item1;Item2;Item3
或者,使用扩展的 glob:
$ shopt -s extglob
$ echo "${input%%*(;)}"
Item1;Item2;Item3
关于bash - 从 Bash 中的字符串末尾删除特定字符的序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69523297/