bla-bla-bla wrote:
saya hendak membuat database dengan text file. sekedar belajar bash
programing.
Contoh print record ditaroh jauh dibawah,
*** spoiler warning ***
bisa bandingkan dengan versi anda :)
scriptnya harus pakai bash. utilitynya standard linux (pr, tr, ls, less,
cat, more dll)
jumlah datanya perkiraan 2000.
Tip: hindari penggunaan cat yang tidak berguna, gunakan "<" kalau
mungkin...
bentuk data pada file nya kayak gini :
======
No. Urut:Nama:Alamat:Kota
2:20:25:15
Ini lebar field-nya kan
1:budi:kartini 85:Denpasar
2:ira:gajah mada 999:Denpasar
3:richard:dharmahusada 82:Surabaya
======
Keterangan :
baris pertama adalah header string masing masing field.
baris kedua adalah untuk maximum jumlah character untuk masing masing field
baris ketiga dan selanjutnya adalah data
Nanti kalau waktu di View ....
No. Urut Nama Alamat Kota
==================================
1 budi kartini 85 Denpasar
2 ira gajah mada 999 Denpasar
3 richard dharmahusada 82 Surabaya
Pertanyaanya :
1. gimana tool / utility standard linux yg dapat "mengexpand" satu baris
kalimat menjadi beberapa bagian dengan seperator ":".
tr, cut, yang paling cepat manipulasi via IFS environ...
2. menurut perkiraan anda, (boleh salah boleh betul) .... berapa jumlah data
yang pantas untuk type database sederhana seperti yang saya ceritakan diatas
??
Tergantung apa yang ingin dilakukan, kalau sekedar printout & cari
record yang match, ratusan juta juga tidak problem...
#!/bin/bash
# requires bash v2 array, printf & tr utility
h=0;while read line; do
if [ "$h" = "0" ]; then
# do header stuffs
w=($(echo $line|tr ':' ' '))
printf "%${w[0]}s %-${w[1]}s %-${w[2]}s %-${w[3]}s\\n" \
"No" "Nama" "Alamat" "Kota"
g=$[$(echo $line|tr ':' '+')]
h=0; while [ $h -le $g ]; do echo -n '=';h=$[$h + 1];done
echo
else
IFS=:;printf "%${w[0]}s %-${w[1]}s %-${w[2]}s %-${w[3]}s\\n" \
$line
fi
done < data-file.ascii
--
+-R-| Mozilla 1.0.1 Gecko/2002 |-H-| Powered by Linux 2.4.x |-7-+
|/v\ Agus Budy Wuysang MIS Department |
| | Phone: +62-21-344-1316 ext 317 GSM: +62-816-1972-051 |
+------------| http://www.fasw.co.id/person/supes/ |-------------+
--
Utk berhenti langganan, kirim email ke [EMAIL PROTECTED]
Informasi arsip di http://www.linux.or.id/milis.php3