sed将短划线插入字符串

时间:2011-08-02 16:01:28

标签: insert sed line character digit

我有14个字符的行包含数字。如何在特定位置(即第4位)插入一个字符?所以,如果我有这样的字符串:xxxxxxxxxxxxxx如何将其更改为:xxxx-xx-xxxxxxxx? (x =数字)

谢谢! irek

2 个答案:

答案 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