【问题标题】:Add new line using awk, sed使用 awk、sed 添加新行
【发布时间】:2013-12-14 02:02:24
【问题描述】:

我有一个稍微损坏的大文件。新行已经消失。每 250 个字符应该有一个新行。我该如何解决?

提前致谢。

【问题讨论】:

    标签: sed awk


    【解决方案1】:

    怎么样

    sed 's/.\{250\}/&\n/g'
    

    .\{250\} 捕获 250 个任何类型的字符。字符被自己替换,加上换行符。

    【讨论】:

    • 工作正常,非常感谢。
    【解决方案2】:

    试试这个:

    sed -r 's/.{250}/&\n/g'
    

    呆呆

    awk -v FPAT='.{1,25}' -v OFS='\n' '$1=$1'
    

    【讨论】:

    • 需要注意的是FPAT需要v.4x才能工作。没有安装在我的 Ubuntu 12.04 中,如果我没记错的话 13.04
    • @Jotne 是的。傻瓜4.0+。我从 8.04 开始不使用 ubuntu,不知道默认安装的版本。但是你可以自己安装东西。 (我安装的是4.1.0)
    【解决方案3】:

    coreutils中有一个可以换行的命令,叫做fold

    fold -w 250
    

    【讨论】:

    • +1 表示使用fold,但您对-b 的描述(理解?)不太正确。
    • @devnull:你说得对,我读信息页太快了。谢谢。
    【解决方案4】:
    sed 's/^.\{250\}/&\
    /;P;D' YourFile
    

    处理大文件会更快

    【讨论】:

      【解决方案5】:

      awk 版本

      awk '{L=250;for (i=1;i<=length($0);i+=L) print substr($0,i,L)}'
      

      【讨论】:

        猜你喜欢
        • 2011-05-11
        • 1970-01-01
        • 1970-01-01
        • 2016-04-21
        • 1970-01-01
        • 2012-03-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多