在字符串中间插入字符

在字符串中间插入字符

我想在字符串中添加连字符“-”。

想表现如何?

vol0802-f522-6cc63-0a3-d

我得到了上面关于输出的信息。但是,我需要以下输出。

vol-0802f5226cc630a3d

-我可以使用添加缺少的

sed 's/\(.\{3\}\)/&-/;'

但上面的命令保持其他-符号不变。

答案1

使用sed

$ echo "vol0802-f522-6cc63-0a3-d" | sed 's/-//g;s/[^0-9]*/&-/'
vol-0802f5226cc630a3d

答案2

在 中bash 4+,这有效:

String='vol0802-f522-6cc63-0a3-d'
String=${String//-}
echo ${String}
vol0802f5226cc630a3d
String="${String:0:3}-${String:3}"
echo ${String}
vol-0802f5226cc630a3d

你没有说你是否总是需要-第三个位置,但这很容易处理。如果这没有帮助,请告诉我们您的环境。泰!

答案3

这应该按照所提供的输入的描述执行:

sed 's/-//g;s/^.\{3\}/&-/'

应该这样:

sed 's/-//g;s/^vol/&-/'

相关内容