【问题标题】:How to trim trailing characters (not whitespace) from a string?如何从字符串中修剪尾随字符(不是空格)?
【发布时间】:2016-01-21 00:32:08
【问题描述】:

你怎么能从一个字符串的末尾剪掉 n 个字符?

第 2 列中感兴趣的字符串:

1 022102201212021
2 201212210221021
3 021201122012210
4 201212101120002

删除最后 5 个字符的修剪字符串:

1 0221022012
2 2012122102
3 0212011220
4 2012121011

希望能够从第 2 列的字符串末尾修剪任意数量的字符。谢谢。

【问题讨论】:

    标签: regex string sed cut


    【解决方案1】:

    使用 sed:

    sed 's/.\{5\}$//' file
    1 0221022012
    2 2012122102
    3 0212011220
    4 2012121011
    

    使用 awk 您可以从每一行中删除最后 5 个字符:

    awk -F '.{5}$' '{print $1}' file
    1 0221022012
    2 2012122102
    3 0212011220
    4 2012121011
    

    【讨论】:

      【解决方案2】:

      如果要修剪的列是最后一列:

      awk '{print substr($0, 0, length-5)}' < INPUT > OUTPUT
      

      如果要修剪的列之后可能还有更多列:

      awk '{$2 = substr($2, 0, length($2)-5); print}' < INPUT > OUTPUT
      

      【讨论】:

        猜你喜欢
        • 2017-05-24
        • 1970-01-01
        • 1970-01-01
        • 2014-01-03
        • 2021-09-16
        • 2010-09-16
        • 2010-10-20
        • 2015-08-01
        • 1970-01-01
        相关资源
        最近更新 更多