4

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

谢谢!艾瑞克

4

2 回答 2

6

如果您的行包含您的数字,您可以将前四个字符分组:

\(....\)

以及另一组中的以下两个:

\(....\)\(..\)

然后,您只需将其替换为对第一组 ( \1) 的反向引用、破折号、对第二组 ( \2) 的反向引用和另一个破折号:

\1-\2-

结果:

$ echo 12345678900000 | sed 's/\(....\)\(..\)/\1-\2-/'
1234-56-78900000
于 2011-08-02T16:02:50.100 回答
2

感谢brandizzi的回答,它帮助我使用稍微不同的方法让我的工作

sed 's/^\(.\{4\}\)\(.\{2\}\)/\1-\2-/' 

4 和 2 用于替换第 4 个字符,然后用破折号替换第 2 个字符。

所以 xxxxxxxx 变成 xxxx-xx-xx

于 2013-07-09T12:14:56.703 回答