Gabungkan beberapa file teks menjadi satu file

10

Saya menggunakan prperintah unix untuk menggabungkan beberapa file teks menjadi satu file teks:

pr -F *files > newfile

Setiap file memiliki panjang yang berbeda, jumlah baris yang berbeda. Saya sebagian besar senang dengan hasilnya, saya suka itu termasuk nama file teks asli diikuti oleh isi file itu. Namun, saya ingin menghilangkan baris kosong di antara nama file teks asli dan isinya. Saya hanya ingin baris kosong antara file teks yang berbeda untuk memisahkan masing-masing. Juga, ia mencetak karakter ^Lsetelah isi setiap file teks, dan saya ingin menghilangkan karakter itu.

Setiap file yang dibaca juga diberi nomor 'halaman'. Hanya satu file yang lebih panjang dari 66 baris default. file itu akhirnya dimuntahkan menjadi 2 'halaman', dan dibagi menjadi 2 bagian dibagi dengan baris kosong. Apakah mungkin untuk menulis teks itu terus menerus tanpa terpecah?

Terima kasih atas bantuannya!

janet
sumber

Jawaban:

9

Anda dapat menggunakan utilitas AWK:

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

Sumber: /programming/1653063/how-do-i-include-a-blank-line-between-files-im-concatenating-with-cat

Radu Rădeanu
sumber
terima kasih atas sarannya. namun, -T tidak dikenali. Saya sedang mengerjakan mac os x jika itu penting.
janet
sayangnya, -t menciptakan jenis file yang sama dengan yang dilakukan kucing, tidak ada jeda antara file teks yang dibaca.
janet
terima kasih Radu. hanya tentang mendapatkan apa yang saya inginkan! maaf, saya menyadari sekarang bahwa saya memposting ke tempat yang salah, karena saya melihat pemberitahuan tentang menjadi di luar topik. saya ucapkan terima kasih atas bantuannya!
janet
12

Untuk memiliki baris kosong antara file:

cat file1 newline file2 newline file3 > newfile

Di mana 'baris baru' adalah file dengan baris kosong.

Darius Žitkevičius
sumber
Bisakah Anda mengklarifikasi cara membuat file newline? Beberapa editor teks akan secara otomatis menambahkan karakter end-of-line ke baris terakhir, dan yang lain tidak, sehingga beberapa orang mungkin mengalami masalah membuat file ini dengan benar. Dengan kata lain: apakah file dengan panjang nol memiliki garis nol, atau satu baris?
Eliah Kagan
vim baris baru di vim: wq Itu.
Darius Žitkevičius
Selama saya melihat, "cat" menempatkan baris baru secara otomatis di antara setiap file.
myuce
1
for file in *.txt; do (cat "${file}"; echo) >> concatenated.txt; done

Di atas akan menambahkan konten file eacb txt ke concatenated.txt menambahkan baris baru di antara mereka.

Francisco Luz
sumber
0

Anda dapat menggunakan catuntuk membuang teks file ke dalam satu file dengan:

cat file1 file2 file3 > newfile
Atari911
sumber
2
Sayangnya cattidak memenuhi persyaratan lainnya.
Ignacio Vazquez-Abrams
1
ya terima kasih. tetapi cat hanya mencantumkan konten setiap file tanpa nama file teks asli dan juga mencantumkan konten setiap file satu demi satu tanpa jeda di antaranya. Saya memerlukan setidaknya 1 baris kosong antara isi setiap file teks dalam file besar yang baru.
janet