Sebagai administrator Linux atau pengguna tingkat lanjut, menguasai manajemen file dalam distribusi sistem operasi Linux apa pun yang Anda gunakan adalah yang terpenting. Manajemen file adalah aspek inti dari administrasi sistem operasi Linux dan tanpanya, kami tidak akan dapat menggunakan fitur terkait file seperti enkripsi file, manajemen pengguna file, kepatuhan file, pembaruan &pemeliharaan file, dan manajemen siklus hidup file.
Pada artikel ini, kita akan melihat aspek penting dari manajemen file Linux yang membagi file besar menjadi beberapa bagian pada nomor baris yang diberikan. Jika tujuan artikel ini hanya untuk membagi file besar menjadi file kecil yang dapat dikelola tanpa mempertimbangkan nomor baris file, maka yang kita perlukan hanyalah kemudahan split perintah.
Contoh File Referensi
Agar tutorial ini masuk akal, kami akan memperkenalkan contoh file teks untuk bertindak sebagai file besar yang ingin kami pisahkan dari nomor baris yang diberikan. Buat contoh file teks dan isi seperti yang ditunjukkan.
$ sudo nano sample_file.txt
Buka file ini dengan perintah cat untuk mencatat nomor baris yang terkait:
$ cat -n sample_text.txt
Seperti yang telah Anda catat, file di atas memiliki 1 hingga 20 nomor baris. Sekarang katakanlah kita ingin membagi file ini menjadi 4 bagian pada nomor baris 5 , 11 , dan 17 .
Kami akan menghasilkan file-file berikut:
- file_1 yang berisi baris 1 hingga 5 dari sample_file.txt.
- file_2 berisi baris 6 hingga 11 dari sample_file.txt.
- file_3 berisi baris 12 sampai 17 dari sample_file.txt.
- file_4 berisi baris 18 hingga 20 dari sample_file.txt.
Sekarang kita telah memahami pernyataan masalah kita, saatnya untuk melihat metodologi yang dibutuhkan untuk solusi yang layak.
1. Menggunakan Perintah kepala dan ekor
Efektivitas menggabungkan dua perintah ini untuk membagi file besar menjadi beberapa bagian dari nomor baris yang disediakan memerlukan penyertaan -n
opsi sebagai bagian dari eksekusi perintahnya.
Untuk mengekstrak nomor baris 6 ke 11 , kita akan menjalankan perintah berikut.
$ tail -n +3 sample_file.txt | head -n $(( 11-6+1 ))
Untuk menyimpan hasil ini ke file_2.txt :
$ tail -n +6 sample_file.txt | head -n $((11-6+1)) > file_2.txt $ cat file_2.txt
2. Menggunakan Perintah sed
Sejak sed perintah mendukung dua rentang alamat yang diberikan, kita dapat mengekstrak baris 12 ke 17 dengan cara berikut.
$ sed -n '12,17p; 18q' sample_file.txt
Kita dapat memodifikasi perintah untuk menyimpan output di atas ke file_3.txt .
$ sed -n '12,17p; 18q' sample_file.txt > file_3.txt $ cat file_3.txt
3. Menggunakan Perintah awk
awk perintah mendukung banyak fitur seperti redirection, loop, dan array. Oleh karena itu, kita dapat menggunakannya untuk membuat semua bagian file yang diperlukan (file_1.txt , file_2.txt , file_3.txt , dan file_4.txt ) dari file besar (sample_file.txt ) dengan satu frasa perintah seperti yang ditunjukkan di bawah ini.
awk perintah disediakan dengan nomor baris kunci (5 , 11 , dan 17 ) diperlukan dalam memisahkan sample_file.txt menjadi empat bagian (file_1.txt , file_2.txt , file_3.txt , dan file_4.txt ).
$ awk -v nums="5 11 17" ' BEGIN { c=split(nums,b) for(i=1; i<=c; i++) a[b[i]] j=1; out = "file_1.txt" } { print > out } NR in a { close(out) out = "file_" ++j ".txt" }' sample_file.txt
Hasil dari menjalankan awk . di atas perintah terlihat pada tangkapan layar berikut.
Sekarang kita dapat dengan nyaman membagi file besar menjadi beberapa bagian berdasarkan nomor baris yang disediakan melalui berbagai pendekatan seperti yang tercakup dalam bagian tutorial ini.
Anda mungkin juga ingin membaca artikel terkait berikut ini:
- Cara Gzip File Besar (100GB+) Lebih Cepat di Linux
- Cara Membuat File Besar 1GB atau 10GB di Linux
- Cara Menyalin Banyak File di Linux