【问题标题】:Split last column into two equal halves in unix在unix中将最后一列分成两半
【发布时间】:2018-05-01 03:38:29
【问题描述】:

我需要将最后一列拆分为两个单独的列并删除其中的一部分。

目前最后一列中的所有值都有 6 个数字。我需要将它们分成两个单独的列。 第一列应该有前三个数字,第二列应该有接下来的三个数字。

我最终想删除新创建的第二列。

Data - 
ID c1 c2 c3  c4  c5
12 A  XY 123 456 657098 

新文件应该如下创建 -

Data 2
ID c1 c2 c3  c4  c5
12 A  XY 123 456 657

谢谢

【问题讨论】:

    标签: shell unix


    【解决方案1】:

    您可以使用此awk 检查每一行的最后一列的长度:

    awk 'length($NF) == 6 { $NF = substr($NF, 1, 3) } 1' file
    
    Data  -
    ID    c1  c2  c3   c4   c5
    12    A   XY  123  456  657
    

    【讨论】:

    • 感谢 Anubhava,我如何使用删除 C5 的同一命令创建新文件?
    • awk 'length($NF) == 6 { $NF = substr($NF, 1, 3) } 1' file > newFile 会做这项工作
    猜你喜欢
    • 2020-09-21
    • 1970-01-01
    • 2010-09-07
    • 1970-01-01
    • 2018-11-04
    • 2013-05-25
    • 2013-12-06
    • 2012-05-26
    • 1970-01-01
    相关资源
    最近更新 更多