Gunakan cat
dengan redirection output. Sintaks: cat file [file] [[file] ...] > joined-file
.
Contoh hanya dengan dua file (Anda dapat memiliki lebih banyak):
$ echo "some text in a file" > file1
$ echo "another file with some text" > file2
$ cat file1 file2 > mergedfiles
$ cat mergedfiles
some text in a file
another file with some text
Jika Anda memiliki "banyak dokumen", manfaatkan globbing shell (pola):
cat input-files-dir/* > joined-file
Ini akan menggabungkan semua file di direktori itu ke direktori saat ini (mencegahnya agar tidak cocok dengan file output itu sendiri). Ini benar-benar independen untuk penggunaan cat
dan pengalihan output - hanya saja Bash menyediakan semua file sebagai argumen cat
.
Jenis file
Itu hanya akan merekatkan (bergabung) file bersama seperti yang akan Anda lakukan dengan kertas dan pita. Tidak peduli tentang format file aktual yang mampu menangani ini. Ini akan bekerja untuk file teks, tetapi tidak untuk PDF, ODT, dll. Yah, itu akan merekatkan mereka bersama-sama, tapi itu bukan PDF / ODT yang valid lagi.
Urutan bergabung
Seperti yang ditunjukkan oleh phoibos , shell globbing akan menghasilkan urutan nama file berdasarkan abjad. Beginilah cara kerja Bash and shell globbing.
Tambahan tentang input file is output file
kesalahan
Ketika pola file input cocok dengan file yang sama dengan yang di-output, ini akan menyebabkan kesalahan. Ini fitur keamanan. Contoh: cat *.txt > out.txt
menjalankan kedua kalinya akan menyebabkan ini.
Apa yang dapat Anda lakukan:
- Pilih pola yang lebih spesifik untuk mencocokkan file input aktual, tidak cocok dengan nama output. Contoh: pola file input
*.txt
dengan file output output.out
tidak akan bertabrakan.
- Bekerja di direktori yang berbeda. Dalam contoh di atas, saya telah menggunakan
input-files-dir
direktori terpisah untuk menempatkan semua file, dan output ke direktori kerja saat ini. Ini membuatnya tidak mungkin untuk mendapatkan kesalahan ini.
ls
hanya daftar yang cocok. Misalnyals *.txt
untuk melihat apa yang dicocokkan.Cara mudah untuk melakukannya adalah dengan menggunakan cat:
Jika Anda hanya mengeluarkan
cat file1 file2
Anda akan melihat kedua file pada output standar. Dengan menggunakan>
, Anda hanya mengarahkan output standar ke file. Itu akan bekerja juga dengan perintah lain.sumber
Lakukan dengan loop sederhana:
>>
ditambahkan ke file.Catatan: Jika karena alasan tertentu Anda harus menjalankan perintah lagi, Anda harus menghapus
complete.txt
, jika tidak, Anda akan menulis file itu sendiri, yang tidak berfungsi.sumber
cat
.cat *.txt
. Untuk loop harus diurutkan.for
atau di mana pun di Bash.Jika file yang ingin Anda gabungkan semuanya berakhir
.txt
, buat tetap sederhana:Jika direktori hanya berisi file teks, itu juga sederhana:
(Perhatikan bahwa setelah Anda membuat
combined.txt
, melakukannya lagi akan memasukkannya dalam perluasan*
, yang mengarah ke perilaku aneh).Jika Anda ingin memilih beberapa file dalam direktori dan bukan yang lain, yang terbaik adalah jika nama file memungkinkan Anda untuk membedakan mana yang Anda inginkan. Jika tidak, Anda bisa disukai
find
. Tapi saya ragu Anda harus melangkah sejauh itu.sumber
Skrip tindakan khusus Thunar yang ditulis oleh cipricus juga mengilhami saya untuk menulis skrip Nautilus yang serupa dan saya pikir mungkin bermanfaat bagi orang lain yang melihat T&J ini untuk referensi tentang subjek ini. Jadi begini:
sumber
Ini adalah pelengkap dan variasi untuk jawaban lain, terkait dengan menempatkan solusi ini untuk bekerja dalam tindakan kebiasaan Thunar.
Tidak semua dari mereka dapat digunakan dengan cara ini, tetapi ada juga yang bisa.
Saya pikir yang paling menarik adalah bisa menggabungkan file yang dipilih dari menu konteks Thunar .
Ini adalah variasi dari apa yang disarankan oleh Sadi dalam komentar untuk gertvdijk 's jawabannya :
Hanya file yang dipilih yang akan digabung. Batasi kondisi tampilan untuk file teks.
Terima kasih khusus kepada Sadi yang komentarnya memberi saya solusi paling jelas dan terkini untuk masalah saya.
Saya menerima gertvdijk 's jawaban sebagai definitif. Tidak hanya itu adalah kesempatan untuk komentar Sadi, tetapi tampaknya lebih bernilai bagi orang lain, memberikan solusi yang diperdebatkan dengan baik dan lengkap (meskipun agak di atas keterampilan membaca CLI saya).
sumber
Anda dapat mencoba
find
perintah juga,Ia menemukan
.txt
file di dalam direktori saat ini dan menjalankancat
perintah pada setiap file yang didirikan. Akhirnya seluruh output dialihkan ke nama filefile
(dibuat dalam arus langsung itu sendiri).Penjelasan:
sumber
Anda juga bisa menggunakan utilitas online seperti merge-files-online.com
sumber