sed将短划线插入字符串

ire*_*rek 4 sed insert character line digit

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

谢谢!irek

bra*_*zzi 5

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

\(....\)
Run Code Online (Sandbox Code Playgroud)

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

\(....\)\(..\)
Run Code Online (Sandbox Code Playgroud)

然后,您只需通过对第一个组(\1)的反向引用,短划线,对第二个组的反向引用(\2)和另一个破折号来替换它:

\1-\2-
Run Code Online (Sandbox Code Playgroud)

结果:

$ echo 12345678900000 | sed 's/\(....\)\(..\)/\1-\2-/'
1234-56-78900000
Run Code Online (Sandbox Code Playgroud)

  • 这就像通过鼻孔呼吸一样简单..非常感谢.. (2认同)