我有14个字符的行包含数字。如何在特定位置(即第4位)插入一个字符?所以,如果我有这样的字符串:xxxxxxxxxxxxxx如何将其更改为:xxxx-xx-xxxxxxxx? (x =数字)
谢谢! irek
答案 0 :(得分:5)
如果您的行仅包含您的数字,您可以将一组中的前四个字符分组:
\(....\)
以及另外两组中的以下两个:
\(....\)\(..\)
然后,您只需将其替换为对第一组(\1
)的反向引用,短划线,对第二组(\2
)的反向引用和另一个短划线:
\1-\2-
结果:
$ echo 12345678900000 | sed 's/\(....\)\(..\)/\1-\2-/'
1234-56-78900000
答案 1 :(得分:1)
感谢brandizzi的答案,它帮助我使用稍微不同的方法让我的工作
sed 's/^\(.\{4\}\)\(.\{2\}\)/\1-\2-/'
4和2用于替换第4个字符,然后用破折号替换第2个字符。
因此xxxxxxxx变为xxxx-xx-xx