开发者社区> 问答> 正文

剪切线的特定部分并粘贴到另一个文件的特定部分

我有一个大文件,我需要从特定的行号中剪掉一部分字符串(最后三个值)。我必须将剪切线片段粘贴到另一个文件的另一行的末尾。大文件中的行看起来像这样:

33 X2_C(4)     0.2454  1.1280  0.0073      1.4926102  15.5148009   0.0724955
34 X2_C(5)     0.2487  1.2156 -0.0585      1.5876791  16.7196951  -0.5831547
35 X2_C(6)     0.2529  1.2191 -0.1998      1.7741292  16.7675608  -1.9922789

现在,我知道要获取最后三个数字,正则表达式应如下所示:

\-{0,1}\d[0-9]{0,2}\.\d[0-9]{4,6}\s+\-{0,1}\d[0-9]{0,2}\.\d[0-9]{4,6}\s+\-{0,1}\d[0-9]{0,2}\.\d[0-9]{4,6}

要修改的文件如下所示:

C(Fragment=1)
C(Fragment=2)
C(Fragment=2)

展开
收起
祖安文状元 2020-01-07 14:02:26 411 0
1 条回答
写回答
取消 提交回答
  • 是awk的一个,首先是我使用的测试文件:

    $ cat file1
    111 112 113 114
    121 122 123 124
    131 132 133 134
    141 142 143 144
    151 152 153 154
    $ cat file2
    211
    221
    231
    241
    awk:
    
    $ cat program.awk
    BEGIN {
        n=split(from,from2,",")
        m=split(to,to2,",")
        if(n!=m)
            exit
        for(i in from2) {
            from3[from2[i]]=i
            to3[to2[i]]=i
        }
    }
    NR==FNR {
        if(FNR in from3) 
            from2[from3[FNR]]=$(NF-2) OFS $(NF-1) OFS $NF
        next
    }
    (FNR in to3) {
        $0=$0 OFS from2[to3[FNR]]
    }1
    
    2020-01-07 14:02:35
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载