Secara efisien membaca file baris demi baris dalam skrip shell
- 1566
- 434
- Enrique Purdy
Membaca file baris demi baris adalah tugas umum di banyak skrip shell, karena memungkinkan Anda untuk memproses setiap baris file secara terpisah dan melakukan tindakan berdasarkan konten setiap baris. Ada beberapa cara untuk membaca file baris demi baris dalam skrip shell linux, tetapi beberapa metode lebih efisien daripada yang lain. Di artikel ini, kami akan mengeksplorasi beberapa cara paling efisien untuk membaca file baris demi baris dalam skrip shell linux.
Menggunakan while loop
Cara paling dasar untuk membaca baris file demi baris dalam skrip shell adalah dengan menggunakan loop sementara dan perintah baca. Perintah baca membaca baris input dari file dan menyimpannya dalam variabel, yang kemudian dapat diproses oleh skrip. Loop sementara memungkinkan Anda untuk mengulangi melalui baris file sampai akhir tercapai. Berikut adalah contoh penampilannya:
#!/usr/bin/env bash # baca baris file demi baris saat membaca baris; lakukan # proses konten baris tunggal gema "$ line" selesai < file.txt1234567 | #!/usr/bin/env bash # baca baris file oleh linewhile baca baris; lakukan # proses konten baris tunggal gema "$ line" selesai < file.txt |
Metode ini sederhana dan mudah dimengerti, tetapi memiliki beberapa keterbatasan. Salah satu batasannya adalah bahwa perintah baca hanya dapat membaca satu baris pada satu waktu, sehingga bisa lebih lambat untuk file besar dengan banyak baris. Selain itu, perintah baca hanya dapat dibaca dari input standar (stdin), jadi Anda harus menggunakan < operator to redirect the contents of the file to stdin. This can be inconvenient if you need to read from multiple files or if you want to read from a file that is not in the current directory.
Menggunakan saat loop dengan kucing
Cara yang lebih efisien untuk membaca baris file demi baris dalam skrip shell adalah dengan menggunakan perintah CAT dalam kombinasi dengan loop sementara. Perintah CAT membaca file dan mengeluarkan isinya ke stdout, yang kemudian dapat diproses dengan loop while. Berikut adalah contoh penampilannya:
#!/usr/bin/env bash # baca baris file demi baris saat membaca baris; lakukan # proses konten baris tunggal gema "$ line" selesai < <(cat file.txt)1234567 | #!/usr/bin/env bash # baca baris file oleh linewhile baca baris; lakukan # proses konten baris tunggal gema "$ line" selesai < <(cat file.txt) |
Metode ini lebih efisien daripada perintah baca karena membaca seluruh file ke dalam memori sekaligus, daripada membaca satu baris pada satu waktu. Ini bisa lebih cepat untuk file besar dengan banyak baris. Selain itu, perintah CAT dapat membaca dari file apa pun, bukan hanya stdin, sehingga Anda dapat menggunakannya untuk membaca dari beberapa file atau file yang tidak ada di direktori saat ini.
Menggunakan saat loop dengan sed
Cara lain yang efisien untuk membaca file baris demi baris dalam skrip shell adalah dengan menggunakan perintah SED dalam kombinasi dengan loop sementara. Perintah SED adalah alat pemrosesan teks yang kuat yang dapat membaca file dan mengeluarkan isinya ke stdout, satu baris pada satu waktu. Berikut adalah contoh penampilannya:
#!/usr/bin/env bash # baca baris file demi baris saat membaca baris; lakukan # proses konten baris tunggal gema "$ line" selesai < <(sed -n -e 1p file.txt)1234567 | #!/usr/bin/env bash # baca baris file oleh linewhile baca baris; lakukan # proses konten baris tunggal gema "$ line" selesai < <(sed -n -e 1p file.txt) |
Metode ini mirip dengan perintah CAT, tetapi lebih efisien karena hanya menghasilkan satu baris pada satu waktu. Ini bisa lebih cepat untuk file besar dengan banyak baris. Selain itu, perintah SED memiliki banyak opsi dan fitur yang dapat digunakan untuk memanipulasi output, jadi ini adalah alat yang sangat fleksibel untuk pemrosesan teks.
Singkatnya, ada beberapa cara untuk membaca file baris demi baris dalam skrip shell linux.
- « Tanggal Display Bash Tanggal dan Waktu dalam format tertentu
- Cara menampilkan output di baris yang sama dalam python »