Membaca dan Memproses File Line-by-Line dengan Bash
Halo teman-teman! Kali ini kita akan membahas cara membaca dan memproses file baris per baris (line-by-line) di Bash. Ini adalah salah satu cara paling umum dan efisien untuk memproses teks dalam skrip shell. Yuk, kita simak!
Kenapa Harus Line-by-Line?
- Hemat Memori: Kita tidak perlu membuka seluruh file ke memori.
- Fleksibel: Bisa memproses file besar tanpa khawatir kekurangan memori.
- Simpel: Kodenya gampang banget, cuman pake
whileloop.
Contoh Sederhana
Misalkan kita punya file data.txt dengan isi:
Halo
Dunia
Bash
Kita bisa membaca dan mencetak setiap baris dengan kode berikut:
#!/bin/bash
while IFS= read -r line
do
echo "$line"
done < "data.txt"
Penjelasan Kode
-
while IFS= read -r line: Ini adalahwhileloop dengan perintahread.IFS=berarti Input Field Separator dibuat kosong, sehingga spasi di awal dan akhir baris tidak dihilangkan.-rmencegah backslash (\) diinterpretasikan secara khusus. -
dodandoneadalah blok kode yang akan dijalankan untuk setiap baris. Di sini, kita hanya mencetak baris denganecho "$line". -
< "data.txt": Mengarahkan isi filedata.txtkewhileloop.
Contoh Lebih Kompleks
Misalkan kita mau menghitung total kata di setiap baris:
#!/bin/bash
while IFS= read -r line
do
words=( $line )
echo "Baris: $line | Jumlah Kata: ${#words[@]}"
done < "data.txt"
Penjelasan Kode
-
words=( $line ): Mengkonversi$lineke arraywords. Setiap kata menjadi elemen array. -
${#words[@]}: Mengembalikan jumlah elemen dalam arraywords, yaitu jumlah kata di baris tersebut.
Tips Tambahan
-
Handle File Besar: Gak usah khawatir, cara ini bisa buat file besar karena gak perlu buka seluruh file di memori.
-
Proses dengan Command Lain: Kamu bisa memasukkan perintah lain di dalam loop, seperti
grep,awk, ataused. -
Skip Baris Tertentu: Tambahkan kondisi
ifdi dalam loop untuk skip baris tertentu.
while IFS= read -r line
do
if [[ $line == *"skip"* ]]; then
continue
fi
echo "$line"
done < "file.txt"
Di sini, kita skip baris yang mengandung kata “skip”.
Membaca file line-by-line di Bash itu gampang dan bermanfaat banget, apalagi kalau berurusan dengan file besar atau proses teks sederhana. Coba pake contoh di atas, dan jangan ragu buat modifikasi sesuai kebutuhan.
Semoga bermanfaat! Kalau ada pertanyaan, tulis aja di komentar. Ciao!