Salah satu operasi paling umum saat bekerja dengan string di Bash adalah menentukan apakah string berisi string lain atau tidak.
Dalam artikel ini, kami akan menunjukkan beberapa cara untuk memeriksa apakah string berisi substring.
Menggunakan Wildcard #
Pendekatan termudah adalah dengan mengapit substring dengan simbol wildcard asterisk (tanda bintang) *
dan bandingkan dengan string. Wildcard adalah simbol yang digunakan untuk mewakili nol, satu atau lebih karakter.
Jika tes mengembalikan true
, substring terkandung dalam string.
Pada contoh di bawah ini kita menggunakan pernyataan if dan operator persamaan (==
) untuk memeriksa apakah substring SUB
ditemukan dalam string STR
:
#!/bin/bash
STR='GNU/Linux is an operating system'
SUB='Linux'
if [[ "$STR" == *"$SUB"* ]]; then
echo "It's there."
fi
Saat dijalankan skrip akan menampilkan:
It's there.
Menggunakan operator kasus #
Alih-alih menggunakan pernyataan if, Anda juga dapat menggunakan pernyataan kasus untuk memeriksa apakah suatu string menyertakan string lain atau tidak.
#!/bin/bash
STR='GNU/Linux is an operating system'
SUB='Linux'
case $STR in
*"$SUB"*)
echo -n "It's there."
;;
esac
Menggunakan Operator Regex #
Opsi lain untuk menentukan apakah substring tertentu muncul dalam string adalah dengan menggunakan operator regex =~
. Saat operator ini digunakan, string kanan dianggap sebagai ekspresi reguler.
Titik yang diikuti dengan tanda bintang .*
cocok dengan nol atau lebih kemunculan karakter apa pun kecuali karakter baris baru.
#!/bin/bash
STR='GNU/Linux is an operating system'
SUB='Linux'
if [[ "$STR" =~ .*"$SUB".* ]]; then
echo "It's there."
fi
Script akan menggemakan berikut:
It's there.
Menggunakan Grep #
Perintah grep juga dapat digunakan untuk mencari string di string lain.
Pada contoh berikut, kita melewatkan string $STR
sebagai input untuk grep dan memeriksa apakah string $SUB
ditemukan dalam string input. Perintah akan mengembalikan true
atau false
sebagaimana mestinya.
#!/bin/bash
STR='GNU/Linux is an operating system'
SUB='Linux'
if grep -q "$SUB" <<< "$STR"; then
echo "It's there"
fi
-q
opsi memberitahu grep untuk diam, untuk menghilangkan output.
Kesimpulan #
Memeriksa apakah string berisi substring adalah salah satu operasi paling dasar dan sering digunakan dalam skrip Bash.
Setelah membaca tutorial ini, Anda harus memiliki pemahaman yang baik tentang cara menguji apakah sebuah string menyertakan string lain. Anda juga dapat menggunakan perintah lain seperti awk
atau sed
untuk pengujian.
Jika Anda memiliki pertanyaan atau masukan, jangan ragu untuk memberikan komentar.