Saya perlu menyalin konten file teks dan menempelkannya ke file teks lain. File teks pertama memiliki 10 baris data dan saya perlu mereka disalin ke file teks kedua mulai dari baris nomor 5 (misalnya). Jadi dalam file teks kedua data tersebut harus ditulis dari baris 5 ke baris 14. Bagaimana ini bisa dilakukan? Terima kasih sebelumnya. Anggap saya sebagai pemula tentang Linux.
text-processing
G. Paschalis
sumber
sumber
(head -n 5 a.txt ; cat b.txt ; tail -n +6 a.txt) > c.txt
Alat termudah di sini mungkin
sed
. Untuk memasukkanb.txt
ke dalama.txt
setelah baris ke-5, Anda bisa menulis:sed
membaca file yang ditentukan sebagai argumen (a.txt
) baris demi baris. Semua baris direproduksi dalam output sama seperti yang muncul di input, kecuali jika mereka diubah oleh perintah.Ini
5
adalah alamat (nomor baris) di mana perintah berikut harus dijalankan. Perintah yang kita gunakan adalahr
, yang mengambil nama file sebagai argumen (di sinib.txt
), membacanya sepenuhnya dan memasukkannya ke dalam output setelah baris saat ini.Seperti berdiri di atas,
sed
baris perintah ini hanya akan mencetak output ke terminal, tanpa menulis ke file apa pun. Anda dapat mengarahkannya ke file baru (bukan file input mana pun!) Menggunakan pengalihan output Bash:Atau Anda dapat langsung mengubah luar file input
a.txt
dengan menggunakansed
's-i
(untuk 'di tempat') switch. Jika Anda menuliskannya-i.bak
, itu akan membuat salinan cadangan dari file input asli dengan akhiran.bak
pertama:Sebuah contoh:
sumber
(Menggunakan kembali contoh elegan dari @ByteCommander :)
sumber