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
while
loop.
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 adalahwhile
loop dengan perintahread
.IFS=
berarti Input Field Separator dibuat kosong, sehingga spasi di awal dan akhir baris tidak dihilangkan.-r
mencegah backslash (\
) diinterpretasikan secara khusus.do
dandone
adalah blok kode yang akan dijalankan untuk setiap baris. Di sini, kita hanya mencetak baris denganecho "$line"
.< "data.txt"
: Mengarahkan isi filedata.txt
kewhile
loop.
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$line
ke 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
if
di 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!