複数のテキストファイルを1つのファイルに結合する


10

unix prコマンドを使用して、複数のテキストファイルを1つのテキストファイルに結合しています。

pr -F *files > newfile

各ファイルは異なる長さ、異なる行数です。結果には大満足です。元のテキストファイルの名前の後にそのファイルの内容が含まれているのが好きです。ただし、元のテキストファイルの名前とその内容の間の空白行を削除したいと思います。異なるテキストファイルの間の空白行だけを区切ってください。また、^L各テキストファイルの内容の後に文字を印刷するので、その文字を削除したいと思います。

読み込まれた各ファイルには、「ページ」番号も付与されます。66行のデフォルトより長いファイルは1つだけです。そのファイルは2つの「ページ」に分割され、空白行で区切られた2つのセクションに分割されます。そのテキストを分割せずに連続して書くことは可能ですか?

助けてくれてありがとう!

回答:


9

AWKユーティリティを使用できます。

awk 'FNR==1{print ""}{print}' *files > newfile

ソース:https : //stackoverflow.com/questions/1653063/how-do-i-include-a-blank-line-between-files-im-concatenating-with-cat


提案ありがとうございます。ただし、-Tは認識されません。それが問題ならMac OS Xに取り組んでいます。
janet 2013

残念ながら、-tは猫がないこと、ファイルの同じ種類を作成し、テキストファイルの間には切れ目が読み込まない。
ジャネット

ラドゥありがとう。それはちょうど私が欲しいものを手に入れます!申し訳ありませんが、トピックから外れているという通知を見て、間違った場所に投稿していることに気付きました。助けてくれてありがとう!
janet 2013

12

ファイル間に空行を含めるには:

cat file1 newline file2 newline file3 > newfile

ここで、「改行」は空の行のあるファイルです。


ファイルの作り方がわかりますnewlineか?テキスト編集者によっては、最終行に行末文字を自動的に追加するものとそうでないものがあります。そのため、このファイルを正しく作成できない場合があります。別の言い方をすれば、長さ0のファイルには0行または1行がありますか?
Eliah Kagan 2013

vim:wqのvim改行これで終わりです。
DariusŽitkevičius2013

私が見ている限り、「cat」は各ファイルの間に自動的に新しい行を挿入します。
myuce 2016年

1
for file in *.txt; do (cat "${file}"; echo) >> concatenated.txt; done

上記は、eacb txtファイルの内容をconcatenated.txtに追加し、それらの間に新しい行を追加します。


0

cat次のコマンドを使用して、ファイルのテキストを1つのファイルにダンプできます。

cat file1 file2 file3 > newfile

2
残念ながらcat、他の要件は何も満たしていません。
Ignacio Vazquez-Abrams

1
はい、ありがとうございます。ただし、catは、元のテキストファイル名なしで各ファイルの内容を一覧表示するだけで、間に切れ目なく各ファイルの内容を次々に一覧表示します。新しい1つの大きなファイルの各テキストファイルの内容の間に少なくとも1つの空白行が必要です。
janet 2013
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.