テキストを結合し、各ファイルの前に空白行を追加します。

テキストを結合し、各ファイルの前に空白行を追加します。

ファイル間に新しい行を保持しながら、ディレクトリ内の複数のテキストファイルを新しいファイルにマージしたいと思います。

答え1

状況によっては、次のように簡単になります。

ファイルをインポートするためのいくつかのワイルドカード(filea、fileb、filecなど)

FILES=`ls file*`

それから接続してください

for i in $FILES; do cat "${i}" >> newfile; echo "" >> newfile; done

答え2

1つの方法は次のとおりですGNU find

td=$(mktemp -d);printf '\n\n' > "$td/2"
find . -maxdepth 1 -type f -exec cat {} "$td/2" \; | head -n -2 > "$td/log"

find現在のディレクトリの通常のファイルを取得し、cat空白行でリンクされたファイルに渡します。最後に、出力は末尾のhead空白行が削除されたファイルに供給され、ログファイルに保存されます。

perl -lpe '$\ = eof && !eof() ? "\n\n" : $/' *.files

関連情報