Pembahasan mengenai mendapatkan posisi huruf (atau karakter) maupun mendapatkan (satu atau sekumpulan) karakter (atau huruf) dalam pembelajaran berbahasa inggris istilahnya “Substring Extraction”, secara bahasa (yang mungkin bisa dipahami secara awam) adalah menggali atau mengeluarkan apa yang didalam substring (sebuah atau serangkaian huruf/karakter yang merupakan sebuah nilai).
Rumus: ${string:position} Contoh 1 : user@localhost ~ $ string=abcABC123ABCabc user@localhost ~ $ echo ${string:0} abcABC123ABCabc user@localhost ~ $ echo ${string:1} bcABC123ABCabc user@localhost ~ $ echo ${string:7} 23ABCabc user@localhost ~ $ echo ${string:7:3} 23A user@localhost ~ $ echo ${string:-4} abcABC123ABCabc user@localhost ~ $ echo ${string:(-4)} Cabc user@localhost ~ $ echo ${string: -4} Cabc
Uraian:
Saat mengekstrak substring dengan cara diatas, maka perlu diketahui bahwa tiap karakter/huruf pada subtring mempunyai index, dan index pertama dimulai dari 0
a --> index ke 0 b --> index ke 1 c --> index ke 2 A --> index ke 3 B --> index ke 4 C --> index ke 5 1 --> index ke 6 … … … c --> index ke 14 Jadi jumlah karakter ada 15 (14+1). ${string:0} menampilkan karakter dari index 0 (“a” awal) sampai index akhir (“c” akhir) ${string:1} menampilkan karakter dari index 1 (“b” awal) sampai index akhir (“c” akhir) ${string:7:3} menampilkan 3 karakter dari index 7, jadi berakhir di index 9 ${string:-4} akan terbaca secara default (terambil semua nilai string) ${string:(-4)} menampilkan 4 karakter dari belakang (index terakhir)
${string: -4} sama dengan “(-4)” diatas, dan teliti lagi bahwa tidak sama dengan yang tanpa tanda kurung diatas. Disini antara “:” dan “-” terdapat spasi, sedangkan yang diatas tanpa spasi.
Cara ini juga bisa digunakan pada parameter $* atau $@, seperti: echo ${*:2} echo ${@:2} echo ${*:2:3}
Selain cara diatas, terdapat cara lain dengan menggunakan “expr”. Penggunaan expr untuk mengekstrak bisa lebih luas lagi.
Rumus: expr substr $string $position $length Contoh 2 : user@localhost ~ $ string=abcABC123ABCabc user@localhost ~ $ echo `expr substr $string 1 2` ab user@localhost ~ $ echo `expr substr $string 4 3` ABC Uraian:
Perhatikan perbedaan pengindexan dengan Contoh 1, jika pada Conroh 1 index pertama dimulai dari 0, sedangkan disini dimulai dari 1. Dengan expr bisa juga mengunakan regular expression untuk mencocokkan karakter dalam string.
Rumus: expr match "$string" '\($substring\)' atau expr match "$string" '.*\($substring\)' expr "$string" : '\($substring\)' atau expr "$string" : '.*\($substring\)' Contoh 3 : user@localhost ~ $ string=abcABC123ABCabc user@localhost ~ $ echo `expr match "$string" '\(.[b-c]*[A-Z]..[0-9]\)'` abcABC1 user@localhost ~ $ echo `expr "$string" : '\(.[b-c]*[A-Z]..[0-9]\)'` abcABC1 user@localhost ~ $ echo `expr "$string" : '\(.......\)'` abcABC1 user@localhost ~ $ echo `expr match "$string" '.*\([A-C][A-C][A-C][a-c]*\)'` ABCabc user@localhost ~ $ echo `expr "$string" : '.*\(......\)'` ABCabc Semoga bermanfaat
Tidak ada komentar:
Posting Komentar