数字を含む 14 文字の行があります。特定の場所、つまり4番目に文字を挿入するにはどうすればよいですか? したがって、次のような文字列がある場合: xxxxxxxxxxxxxx を次のようなものに変更するにはどうすればよいですか: xxxx-xx-xxxxxxxx ? (x = 桁)
ありがとう!イレック
行に数字のみが含まれている場合は、最初の 4 文字をグループにまとめることができます。
\(....\)
別のグループの次の 2 つ:
\(....\)\(..\)
\1
次に、最初のグループへの後方参照 ( )、ダッシュ、2 番目のグループへの後方参照 ( \2
)、および別のダッシュに置き換えるだけです。
\1-\2-
結果:
$ echo 12345678900000 | sed 's/\(....\)\(..\)/\1-\2-/'
1234-56-78900000
Brandizzi さんの回答に感謝します
sed 's/^\(.\{4\}\)\(.\{2\}\)/\1-\2-/'
4 と 2 は、4 番目の文字を置き換え、その後 2 番目の文字をダッシュに置き換えます。
したがって、xxxxxxxx は xxxx-xx-xx になります。