文字列の途中に文字を挿入

文字列の途中に文字を挿入

文字列にハイフン「-」を追加したいと思います。

どのように行動したいですか?

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番目の場所が常に必要かどうかは言っていませんが、簡単に処理できます。役に立たない場合は、お使いの環境について教えてください。タイ語!

答え3

提供された入力について説明されているようにこれを行う必要があります。

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

次のようにする必要があります。

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

関連情報