Minggu, 14 November 2021

Cara Menemukan Posisi Huruf/Karakter Dan Mengambil (beberapa) Karakter/Huruf Berdasarkan Posisi Pada Pemrogaman Bash

 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