[EMAIL PROTECTED] sule]$ cat /home/web4txp/www/online/pesenan.txt
61 E 6 0BAA01 CP001 XQ01 GEN BUS DUCT PRES 19.53 mBAR
65 E 6 0HNC10 CP001A XQ01 IDF A INLET PRESSURE P1 52.32 mBAR
65 E 6 0HNC10 CP001A XQ02 IDF A INLET PRESSURE P1 1063.6 mBAR
65 E 6 0HNC10 CP002A XQ01 IDF A PRESSURE P12 NOD 22.00 mBAR

Misalkan bapak ingim mengambil angka sebelum mBAR. sebelumnya bapak harus
menghitung dulu berapa banyak field kata yang tercantum disitu.

cara menghitungnya sbb :
61 E 6 0BAA01 CP001 XQ01 GEN BUS DUCT PRES 19.53 mBAR
1  2 3    4     5     6   7   8    9   10    11   12

65 E 6 0HNC10 CP001A XQ01 IDF A INLET PRESSURE P1 52.32 mBAR
1  2 3    4     5      6   7  8   9      10    11   12   13

65 E 6 0HNC10 CP001A XQ02 IDF A INLET PRESSURE P1 1063.6 mBAR
1  2 3    4     5      6   7  8   9      10    11   12   13

65 E 6 0HNC10 CP002A XQ01 IDF A PRESSURE P12 NOD 22.00 mBAR
1  2 3    4     5      6   7  8     9     10  11   12   13

disini kita lihat bahwa antara baris pertama sampai baris keempat
kemungkinan tidak semua sama jumlah fieldnya. dari perhitungan diatas bisa
dilihat bahwa angka yang ingin kita ambil terletak di field nomor 11, 12,
12, 12. jadi, kita tidak bisa membuat suatu script untuk mengambil angka
tersebut (karena nomor fieldnya tidak konsisten).

tapi, masih ada satu kekonsistenan lagi dalam message_ooutput file
pesenan.txt tersebut. yaitu, semua angka yang ingin kita ambil sama-sama
terletak di field nomor dua terakhir. jadi penomorannya harus dari
belakang sbb :

61 E  6 0BAA01 CP001 XQ01 GEN BUS DUCT PRES 19.53 mBAR
12 11 10   9     8     7   6   5   4    3     2     1

65 E   6 0HNC10 CP001A XQ01 IDF A INLET PRESSURE P1 52.32 mBAR
13 12 11   10     9      8   7  6   5       4     3   2     1

nah, dapet kalo ternyata angka yang ingin kita ambil terletak di field
nomor 2 terakhir. :) oke...:) hhh...:)

sekarang kita mau ambil field nomor 2 terakhir tersebut. yang dibutuhkan
adalah membalik urutan penomoran. karena di bash ga ada perintah untuk
membalik nomor urutan field, maka kita coba balik aja letak fieldnya.
disini digunakan perintah "rev" . synonim dari reverse.
sintaks rev akan membalik semua standard output. jadi kalo kamu jalankan
perintah ini dengan diikuti kata2 yang ingin kamu balik, maka outputnya
adalah kebalikan kata2 yang dituliskan tersebut. (kebalikan dari perintah
echo)

contoh :
$ rev
Denny Zulfikar
rakifluZ ynneD

dari prinsip tersebut marilah kita balik output dari file pesanan.txt
untuk mendapatkan urutan field yang terbalik.

1. mula-mula tampilkan isi file pesanan.txt dengan perintah cat.
2. balik semua outputnya supaya didapatkan pengurutan dari belakang.
3. ambil hanya field nomor 2(sebenarnya field nomor 11/12 kalo ga dibalik)
yang kita inginkan. gunakan perintah cut dengan delimiter (-d) spasi dan
nomor field (-f) nomor 2.
4. balik lagi hasilnya dengan "rev".
5. oke deh dapet hasilnya....:)

ini full sintaksnya :
$ cat pesanan.txt | rev | cut -d ' ' -f2 | rev


tracing scriptnya sbb:

$ cat pesanan.txt
61 E 6 0BAA01 CP001 XQ01 GEN BUS DUCT PRES 19.53 mBAR
65 E 6 0HNC10 CP001A XQ01 IDF A INLET PRESSURE P1 52.32 mBAR
65 E 6 0HNC10 CP001A XQ02 IDF A INLET PRESSURE P1 1063.6 mBAR
65 E 6 0HNC10 CP002A XQ01 IDF A PRESSURE P12 NOD 22.00 mBAR

$ cat pesanan.txt | rev
RABm 35.91 SERP TCUD SUB NEG 10QX 100PC 10AAB0 6 E 16
RABm 23.25 1P ERUSSERP TELNI A FDI 10QX A100PC 01CNH0 6 E 56
RABm 6.3601 1P ERUSSERP TELNI A FDI 20QX A100PC 01CNH0 6 E 56
RABm 00.22 DON 21P ERUSSERP A FDI 10QX A200PC 01CNH0 6 E 56

$ cat pesanan.txt | rev | cut -d ' ' -f2
35.91
23.25
6.3601
00.22

$ cat pesanan.txt | rev | cut -d ' ' -f2 | rev
19.53
52.32
1063.6
22.00

Selamat mencoba...:)

regards,
Denny


-- 
Unsubscribe: kirim email kosong ke [EMAIL PROTECTED]
Arsip, FAQ, dan info milis di http://linux.or.id/milis
Tidak bisa posting? Baca:
http://linux.or.id/problemmilis
http://linux.or.id/tatatertibmilis

Kirim email ke