【问题标题】:Merging Columns from the Same File in Linux在 Linux 中合并同一文件中的列
【发布时间】:2018-04-05 21:19:38
【问题描述】:

我有一个这样的文本文件:

Name2 381 3923 1000
Name2 321 323  9000
Name2 121 212  1000
Name3 321 644  4444
Name3 111 342  4234
Name3 342 323  3232

我只想将前三列合并成这样的:

Name2:381:3923 1000
Name2:321:323  9000
Name2:121:212  1000
Name3:321:644  4444
Name3:111:342  4234
Name3:342:323  3232

但是,我想保留文件中存在的任何其他列。我尝试使用 sed 和正则表达式,但我遇到的问题是我需要保留其他列,并且简单地用空格代替冒号会造成混乱。

【问题讨论】:

    标签: linux awk sed


    【解决方案1】:

    关注awk 可能对您有所帮助。

    awk '{sub(/ /,":");sub(/ /,":")} 1'  Input_file
    

    第二个解决方案: sed 解决方案。

    sed 's/ /:/1;s/ /:/1'  Input_file
    

    【讨论】:

    • 似乎不起作用。我想是因为我的文件是制表符分隔的。那么我应该将 s/ / 更改为 s/\t/ 吗?
    • 或者使用/[[:blank:]]+/来匹配一个(水平)空白序列
    猜你喜欢
    • 2012-06-24
    • 2011-09-21
    • 1970-01-01
    • 2020-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-01
    • 2017-09-14
    相关资源
    最近更新 更多