GNU/Linux >> Belajar Linux >  >> Linux

Cara Memeriksa apakah String Berisi Substring di Bash

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.


Linux
  1. Periksa apakah String Berisi Substring di Python

  2. Cara Memeriksa apakah String Berisi Substring di Bash

  3. bash - temukan posisi indeks string dari substring

  1. Bagaimana cara memeriksa apakah Bash memiliki Kerentanan Shellshock?

  2. Cara Menemukan Panjang String di Bash [Kiat Singkat]

  3. Bagaimana saya bisa memeriksa karakter kata demi kata dari string perintah bash?

  1. Bagaimana Cara Memeriksa Substring Di Shell Script Bash?

  2. Bagaimana Cara Memeriksa Apakah Bash Dapat Mencetak Warna?

  3. Cara Memisahkan String dalam Skrip Bash