Parsing File CSV dengan Bash Script: Cara Keren Wajib Tahu!
Halo teman-teman! 🚀 Kalian pernah nggak sih berurusan dengan file CSV di terminal? Atau mungkin lagi butuh nge-handle data dalam jumlah banyak dan mau pake Bash Script? Nah, kalo iya, kali ini kita bakal bahas gimana caranya parsing file CSV pake Bash Script. Jadi, stay tuned dan jangan sampe ketinggalan ya!
Apa itu CSV?
CSV (Comma Separated Values) adalah format file yang simpel banget buat nyimpen data struktur kaya tabel. Bayangin aja, misalnya kita punya data mahasiswa dengan kolom seperti NIM, Nama, Jurusan, dan IPK. Nah, data-datanya bakal dipisahin pake koma (,
) atau kadang-kadang pake semicolon (;
). Contohnya nih:
NIM,Nama,Jurusan,IPK
123456789,Joni Doe,Informatika,3.75
234567890,Jane Doe,Teknik Mesin,3.60
Kenapa Pake Bash Script?
Bash Script itu powerfull banget buat otomasi dan manipulasi file, terutama kalo berurusan sama text-based files kaya CSV. Walaupun ada banyak banget tools lain yang bisa parsing CSV (kaya Python atau R), Bash itu cepet dan gampang terutama kalo datanya nggak terlalu kompleks. Plus, buat pemula, ini bisa jadi latihan buat belajar scripting. Jadi, yuk kita mulai!
Langkah Awal: Bikin dan Ngecek File CSV
Pertama-tama, pastikan kalian punya file CSV yang valid. Kalo belum punya, bisa bikin sendiri dulu pake text editor. Misalnya kita punya file data.csv
isinya seperti contoh di atas. Kalo sudah, pastiin dulu isi file-nya dengan perintah cat
.
cat data.csv
Pastiin output-nya kayak gini:
NIM,Nama,Jurusan,IPK
123456789,Joni Doe,Informatika,3.75
234567890,Jane Doe,Teknik Mesin,3.60
Parsing CSV dengan Bash Script
Sekarang, kita mau nge-parse file CSV tadi pake Bash Script. Jadi nanti, data bisa kita olah kolom per kolom. Misalnya, kita mau nampilin cuma nama dan IPK aja. Gimana caranya? Yuk, kita bikin script-nya!
#!/bin/bash
# Baca file CSV, skip header
tail -n +2 data.csv | while IFS=, read -r nim nama jurusan ipk
do
# Tampilin nama dan IPK
echo "Nama: $nama, IPK: $ipk"
done
Simpen script di atas di file, misalnya parse_csv.sh
. Jangan lupa kasih permission buat jalanin script-nya dengan perintah chmod +x parse_csv.sh
.
Penjelasan Script
tail -n +2 data.csv
: Skip baris pertama (header) dari file CSV, karena biasanya kolom. Jadi mulai baca dari baris kedua.while IFS=, read -r nim nama jurusan ipk
:IFS=,
ngatur delimiter/pemisah jadi koma (,
) sesuai format CSV.read -r nim nama jurusan ipk
baca baris per baris, trus bagi jadi variabelnim
,nama
,jurusan
, danipk
berdasarkan delimiter koma tadi.
- Di dalam loop, kita bisa nge-print variabel yang kita butuhin, dalam contoh ini
nama
danipk
.
Running Script
Jalankan script dengan perintah:
./parse_csv.sh
Output-nya kira-kira kayak gini:
Nama: Joni Doe, IPK: 3.75
Nama: Jane Doe, IPK: 3.60
Keren, kan? 😎 Script tadi sudah berhasil parse file CSV dan nampilin nama sama IPK aja!
Parsing CSV dengan Kondisi
Apa yang kalo kita mau nampilin data dengan kondisi tertentu? Misalnya, cuma nampilin data yang IPK-nya di atas 3.5? Bisa banget! Kita tinggal tambahin kondisi di dalam loop-nya.
#!/bin/bash
tail -n +2 data.csv | while IFS=, read -r nim nama jurusan ipk
do
# Bandingkan IPK (di sini IPK masih string, jadi konversi dulu)
if (( $(echo "$ipk > 3.5" | bc -l) )); then
echo "Nama: $nama, IPK: $ipk"
fi
done
Di sini, bc -l
dipake buat ngitung $ipk > 3.5
, karena $ipk
masih string, jadi perlu dikonversi dulu ke numeric. Walaupun sedikit ribet, tapi ini cara yang bisa dipake di Bash.
Nah, gimana, gampang kan? Dengan Bash Script, kita bisa parsing file CSV dengan mudah dan cepat.
Summary tips yang perlu diingat:
- Pastiin delimiter yang dipake di file CSV (
,
atau;
). - Jangan lupa skip header pake
tail -n +2
. - Di dalam loop
while
, baca kolom per kolom lalu simpen di variabel buat diolah lebih lanjut. - Kalo perlu banding numerik, bisa pake
bc
.
Jangan lupa eksperimen dengan data sendiri, dan coba macam-macam manipulasi yang keren. Sekian dulu tutorial ini, semoga berguna. Kalau ada pertanyaan, tinggalin komentar ya! 👋