更改号码格式

发布于 2024-09-06 07:26:49 字数 195 浏览 3 评论 0原文

我有很多行包含 XXXXXXXXX-XXX.XXX 数字格式。我想将号码 XXXXXXXXX-XXX.XXX 更改为 XX.XXX.XXX.X-XXX.XXX

XXXXXXXXX-XXX.XXX = 15 位数字随机数

谁能帮我?提前致谢

I have a lot lines contains XXXXXXXXX-XXX.XXX number format. I want change number XXXXXXXXX-XXX.XXX to XX.XXX.XXX.X-XXX.XXX

XXXXXXXXX-XXX.XXX = 15 digit random number

Anyone can help me? Thanks in advance

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

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

发布评论

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

评论(3

不再让梦枯萎 2024-09-13 07:26:49

常规正则表达式:搜索 (\d{2})(\d{3})(\d{3})(\d)-(\d{3}\.\d{3}) 并替换为 \1.\2.\3.\4-\5

我不太了解 sed,但我认为语法有点不同。试试这个:

sed 's/\([0-9]\{2\}\)\([0-9]\{3\}\)\([0-9]\{3\}\)\([0-9]\)-\([0-9]\{3\}\.[0-9]\{3\}\)/\1.\2.\3.\4-\5/')

General regex: Search for (\d{2})(\d{3})(\d{3})(\d)-(\d{3}\.\d{3}) and replace with \1.\2.\3.\4-\5.

I don't know sed well enough, but I think the syntax there is a bit different. Try this:

sed 's/\([0-9]\{2\}\)\([0-9]\{3\}\)\([0-9]\{3\}\)\([0-9]\)-\([0-9]\{3\}\.[0-9]\{3\}\)/\1.\2.\3.\4-\5/')
迷迭香的记忆 2024-09-13 07:26:49

这很丑陋(因为 sed 使用 POSIX 正则表达式) ,但应该有效:

sed 's/\([0-9]\{2\}\)\([0-9]\{3\}\)\([0-9]\{3\}\)\([0-9]\)\(-[0-9]\{3\}\.[0-9]\{3\}\)/\1.\2.\3.\4\5/g'

This is ugly (because sed uses POSIX regex), but should work:

sed 's/\([0-9]\{2\}\)\([0-9]\{3\}\)\([0-9]\{3\}\)\([0-9]\)\(-[0-9]\{3\}\.[0-9]\{3\}\)/\1.\2.\3.\4\5/g'
从来不烧饼 2024-09-13 07:26:49

试试这个:(

 echo "987654321" | sed 's/\([0-9][0-9]\)\([0-9][0-9][0-9]\)\([0-9][0-9][0-9]\)\([0-9]\)/\1.\2.\3.\4/'

这输出98.765.432.1)

然后,从文件读取输入:

sed 's/\([0-9][0-9]\)\([0-9][0-9][0-9]\)\([0-9][0-9][0-9]\)\([0-9]\)/\1.\2.\3.\4/' in.txt

并且,写入新文件:

sed 's/\([0-9][0-9]\)\([0-9][0-9][0-9]\)\([0-9][0-9][0-9]\)\([0-9]\)/\1.\2.\3.\4/' in.txt > out.txt

我想你可以改进它,但这是一般的想法。

Try this:

 echo "987654321" | sed 's/\([0-9][0-9]\)\([0-9][0-9][0-9]\)\([0-9][0-9][0-9]\)\([0-9]\)/\1.\2.\3.\4/'

(this outputs 98.765.432.1)

Then, for reading input from a file:

sed 's/\([0-9][0-9]\)\([0-9][0-9][0-9]\)\([0-9][0-9][0-9]\)\([0-9]\)/\1.\2.\3.\4/' in.txt

and, for writing to a new file:

sed 's/\([0-9][0-9]\)\([0-9][0-9][0-9]\)\([0-9][0-9][0-9]\)\([0-9]\)/\1.\2.\3.\4/' in.txt > out.txt

I guess you could refine it, but that's the general idea.

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