Pengenalan AWK dan SED (Revisi 140822-r03)

Kembali ke Lab 02

  1. Sebelum mengerjakan tutorial ini pastikan anda berada di direktory ~/[KELAS]/[NPM]/Lab02 dengan melakukan perintah :
    cd ~/[KELAS]/[NPM]/Lab02
    

Tutorial SED

  1. Lakukan perintah berikut :
    $ vi cobased
    
  2. Isi file cobased dengan hal di bawah ini :
    i
    Saya adalah suatu tanda ? dalam hati
    Saya sering melewati # yang penuh * bersinar
    Saya tidak suka di () dalam [] seram
    Saya sering berjalan ' atau " dan
    Ya begitulah hidup............Sendiri... Sendiri... Sendiri.....
    [ESC]
    :wq
    
  3. Lakukan perintah berikut :
    $ sed -i 's/\?/tanya/g' cobased
    
  4. Perintah di atas akan mengubah character ? menjadi kalimat "tanya". Tugas kalian adalah merubah hal-hal berikut pada file :
    # menjadi pagar
    () menjadi kurung
    [] menjadi kotak
    " menjadi berdua
    ' menjadi sendiri
    * menjadi bintang
    

    Hint 1: Untuk tanda kutip satu ('), bisa menggunakan lambang \x27.
    Hint 2: Tutorial ini diberikan juga dengan maksud agar anda memahami bahwa di Linux ada special characters yang harus ditulis dengan tanda "\" di depannya supaya tidak diterjemahkan sebagai bagian program. Silahkan cari tahu dari karakter - karakter yang harus diganti, yang mana sajakah yang merupakan special character dan yang mana yang bukan?

Tutorial AWK

  1. Lakukan perintah berikut :
    $ vi cobaawk
    
  2. Isi file cobaawk dengan hal di bawah ini :
    i
    #!/bin/bash
    
    ls -l | awk '{
       NCHG=0
       FNAME=$9                                     # To get data in 9th field from ls -l (filename)
       FNAME2=FNAME                                 # FNAME2 for old name and FNAME for new name
       gsub (/\"/,"\\\"",FNAME2)                    # To handle problem with " and change it with \" 
       NCHG += gsub(/\x22/,"-",FNAME)               # To replace character " with -
       NCHG += gsub (/--+/,"-",FNAME)              # To replace more than 1 sequencial "-" to one "-" 
       NCHG += gsub (/-\./,".",FNAME)              # To replace character -. to only .
       NCHG += gsub (/^-/,"",FNAME)                # To delete - if in front of file name
       if (NCHG > 0) {                              # if there is change for the filename, filename will be replace with the command below
          system("/bin/mv \""  FNAME2 "\" " FNAME)      # rename oldfile to newfile
       }
    }'
    [ESC]
    :wq
    
  3. Jalankan perintah :
    $ chmod 777 cobaawk
    $ touch coba\"awk
    $ ./cobaawk
    
  4. Pada program cobaawk kita mengganti /\x22/ menjadi "-", /\x22/ berarti karakter nomor 22 (hexadecimal) dalam tabel ascii yaitu ".
    Tugas kalian lengkapi program diatas sehingga program tersebut juga dapat mengganti karakter-karakter berikut menjadi "-":
    , ? * #
    

    Tabel ascii dapat di lihat di http://www.asciitable.com/
  5. Setelah melengkapi program lakukan perintah berikut :
    $ touch "coba,2" 
    $ touch "coba?3" 
    $ touch "coba*4" 
    $ touch "coba#5" 
    $ ./cobaawk
    

Kembali ke Lab 02
Kembali ke Wiki