我想在字符串中添加连字符“-”。
想表现如何?
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/&-/'