十进制模式匹配

发布于 2024-12-02 18:59:40 字数 365 浏览 0 评论 0原文

我有一个大文件,行模式如下:

MDQ[11:15],IO,MDQ[10:14],,,,MDQ[12:16],TPR_AAWD[11:15]

我想修改此文件,如下所示:

MDQ[11],IO,MDQ[10],,,,MDQ[12],TPR_AAWD[11]
MDQ[12],IO,MDQ[11],,,,MDQ[13],TPR_AAWD[12]
MDQ[13],IO,MDQ[12],,,,MDQ[14],TPR_AAWD[13]
MDQ[14],IO,MDQ[13],,,,MDQ[15],TPR_AAWD[14]

如何在 sed/awk/perl/csh/vim 中实现此? 请帮忙

I have a big file and the lines pattern is given below:

MDQ[11:15],IO,MDQ[10:14],,,,MDQ[12:16],TPR_AAWD[11:15]

I want to modify this file like given below:

MDQ[11],IO,MDQ[10],,,,MDQ[12],TPR_AAWD[11]
MDQ[12],IO,MDQ[11],,,,MDQ[13],TPR_AAWD[12]
MDQ[13],IO,MDQ[12],,,,MDQ[14],TPR_AAWD[13]
MDQ[14],IO,MDQ[13],,,,MDQ[15],TPR_AAWD[14]

How i can implement this in sed/awk/perl/csh/vim?
Please help

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

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

发布评论

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

评论(2

野稚 2024-12-09 18:59:40
awk -F '[][]' '{
    split($2, a, /:/)
    split($4, b, /:/)
    split($6, c, /:/)
    split($8, d, /:/)
    for (i=0; i < a[2]-a[1]; i++) {
        printf("%s[%d]%s[%d]%s[%d]%s[%d]\n",
            $1, a[1]+i,
            $3, b[1]+i,
            $5, c[1]+i,
            $7, d[1]+i)
    }
}'
awk -F '[][]' '{
    split($2, a, /:/)
    split($4, b, /:/)
    split($6, c, /:/)
    split($8, d, /:/)
    for (i=0; i < a[2]-a[1]; i++) {
        printf("%s[%d]%s[%d]%s[%d]%s[%d]\n",
            $1, a[1]+i,
            $3, b[1]+i,
            $5, c[1]+i,
            $7, d[1]+i)
    }
}'
腹黑女流氓 2024-12-09 18:59:40

希望以下内容有所帮助:

sed -e 's/:[0-9]*//g'

Hope the below helps:

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