【问题标题】:Trim first 9 letters using awk, sed使用 awk、sed 修剪前 9 个字母
【发布时间】:2012-10-01 22:42:10
【问题描述】:

我在文件中有以下数据,我只需要保留文件的前 9 个字符和 |将它放到另一个文件中

03755432101JONPORT,
037554321031979123120800000000000000000000000000000000
0375543210413855
03755432105JEEY
03755432111P63
03755432133100620120000008156GR1

应该看起来像

037554321
037554321
037554321
037554321
037554321
037554321

【问题讨论】:

    标签: shell sed awk


    【解决方案1】:

    对于这么简单的任务,使用cut

    cut -b1-9
    

    如果您的数据包含 Unicode,您可能需要 -c 而不是 -b

    【讨论】:

    • cut -c1-9 在这里可能更准确。
    【解决方案2】:

    使用sed:

    sed 's/\(.\{9\}\).*/\1/' input_file
    

    使用gawk:

    gawk '{temp = gensub(/(.{9}).*/,"\\1", "g"); print temp}' input_file
    

    但是,对于这种简单的需求,请使用@choroba 建议的cut

    【讨论】:

      【解决方案3】:

      试试下面的grep 命令:

      grep -o "^.\{9\}" FILE
      

      【讨论】:

        【解决方案4】:

        你可以简单地使用:-

        cut -c10- 
        

        【讨论】:

        • 他想保留前 9 个,而不是后面的字符。
        • 正如@lhf 提到的,为了保留前 9 个字母,cut -c1-9 可以正常工作。
        猜你喜欢
        • 2012-10-10
        • 1970-01-01
        • 2019-03-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-09-18
        • 2015-03-19
        相关资源
        最近更新 更多