通过“sed”将破折号插入字符串中

发布于 2024-11-27 16:08:41 字数 207 浏览 2 评论 0原文

我有包含数字的 14 个字符行。如何在特定位置(即第 4 个位置)插入一个字符?

那么,如果我有这样的字符串,

xxxxxxxxxxxxxx

如何将其更改为这样的字符串

xxxx-xx-xxxxxxxx 

,其中 x 代表数字?

谢谢! 伊雷克

I have 14-character line containing digits. How do I insert a char into it at the specific location, i.e. at 4th?

So, if I have string like this

xxxxxxxxxxxxxx

how do I change it to something like this

xxxx-xx-xxxxxxxx 

and whereby x is for a digit?

Thanks!
irek

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

抽个烟儿 2024-12-04 16:08:41

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

\(....\)

并将以下两个字符分组为另一组:

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

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

\1-\2-

结果:

$ echo 12345678900000 | sed 's/\(....\)\(..\)/\1-\2-/'
1234-56-78900000

If your lines only contain your digits, you can group the first four characters in a group:

\(....\)

and the following two ones in another group:

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

Then, you just replace it by a backreference to the first group (\1), a dash, a backreference to the second group (\2) and another dash:

\1-\2-

The result:

$ echo 12345678900000 | sed 's/\(....\)\(..\)/\1-\2-/'
1234-56-78900000
请持续率性 2024-12-04 16:08:41

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

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

4和2工作替换第四个字符,然后用破折号替换第二个字符。

所以 xxxxxxxx 变成 xxxx-xx-xx

Thanks brandizzi for your answer it helped me to get my one to work using a slightly different method

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

the 4 and 2 work to replace the 4th character and then 2nd after that with dashes.

So xxxxxxxx becomes xxxx-xx-xx

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文