【问题标题】:Outputting the contents of files with an extra line break in between each输出文件的内容,每个文件之间有一个额外的换行符
【发布时间】:2014-08-03 05:13:14
【问题描述】:

我有两个文件末尾没有换行符的文件。所以当我调用“cat file1 file2”时,file1的最后一行和file2的第一行共享一行。我需要一个能正确输出文件的命令。我无法更改文件。

【问题讨论】:

    标签: linux bash cat


    【解决方案1】:

    假设您的文件本身在密码中:

    for i in *; do cat "$i" && echo ""; done
    

    否则,您将需要创建一个数组:

    files=( "file0" "file1" "file2" )
    for i in "${files[@]}"; do cat "$i" && echo ""; done
    

    【讨论】:

      【解决方案2】:

      只需使用 awk:

      awk 1 file1 file2
      

      【讨论】:

      • sed '' file1 file2
      • sed b file1 file2
      【解决方案3】:

      您可以非常简单地在file 1 之后和file 2 之前添加newline

      $ cat f1 <(echo "") f2
      

      示例:

      $ printf "line1\nline2" > f1
      $ printf "line3\nline4" > f2
      $ cat f1 f2
      line1
      line2line3
      line4
      

      有修复:

      $ cat f1 <(echo "") f2
      line1
      line2
      line3
      line4
      

      【讨论】:

      • 老家伙们时不时地记得一两个把戏:)
      【解决方案4】:

      嗯,一个简单的想法是创建一个空行或 2 的第三个文件并将其添加到中间....

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-02-12
        • 1970-01-01
        • 1970-01-01
        • 2012-09-10
        • 1970-01-01
        • 1970-01-01
        • 2014-03-01
        • 2018-06-15
        相关资源
        最近更新 更多