【问题标题】:insert a blank line between every two lines in a file using shell, sed or awk使用 shell、sed 或 awk 在文件的每两行之间插入一个空行
【发布时间】:2012-11-06 04:23:31
【问题描述】:

我有一个包含很多行的文件。我想在每两行之间插入一个空行 例如 原文件

xfdljflsad
fjdiaopqqq
dioapfdja;

我想把它变成:

xfdljflsad

fjdiaopqqq

dioapfdja;

如何做到这一点? 我想为此使用 shell 脚本、awk 或 sed? 谢谢!

【问题讨论】:

    标签: shell sed awk


    【解决方案1】:

    sed,使用

    sed G input-file
    

    如果 pilcrow 是正确的,并且您不希望在文件末尾添加额外的换行符, 然后做:

    sed '$!G' input-file
    

    另一种选择是使用pr:

    pr -dt input-file
    

    【讨论】:

    • 我认为您走在正确的道路上,但 IIUC OP 确实 想要在文件末尾有一个额外的换行符。
    【解决方案2】:

    awk '{打印 nl $0; nl="\n"}' 文件

    【讨论】:

      【解决方案3】:

      如果我想快速对文件进行正则表达式,我的方法。

      vim file.txt
      %s/\n/\n\n/g    
      

      【讨论】:

        【解决方案4】:

        惯用的 awk:

        awk 1 ORS='\n\n' file
        

        与 perl 类似:

        perl -nE 'say' file
        

        如果不需要最后的换行符,则附加 | head -n -1

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2022-08-15
          • 2014-09-07
          • 2017-05-25
          • 1970-01-01
          • 2011-03-28
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多