GNU/Linux >> Belajar Linux >  >> Linux

Cara Memeriksa apakah String Berisi Substring di Bash

Jadi, Anda memiliki string yang panjang dan Anda ingin memeriksa apakah string ini berisi substring dalam skrip bash Anda.

Ada lebih dari satu cara untuk memeriksa substring di bash shell. Saya akan menunjukkan beberapa contoh sederhana terlebih dahulu, diikuti dengan skrip bash keren yang menggunakan konsep ini dalam skenario dunia nyata.

Memeriksa substring di bash menggunakan pernyataan if else

Jika Anda terbiasa dengan pernyataan kondisional di bash, Anda dapat menggunakannya untuk memeriksa apakah string berisi substring dengan cara berikut:

if [[ $fullstring == *"$substr"* ]];

Contoh sederhana untuk memeriksa substring

Tanda kurung ganda diperlukan di sini. Saya menganggap ini sebagai cara asli karena tidak menggunakan alat lain. Mari saya jelaskan cuplikan di atas dengan contoh yang tepat.

Inisialisasi variabel dengan string panjang:

[email protected]:~$ fullstring="This is a string with a stretch"

Sekarang, simpan kata “stretch” di dalam  variabel bernama substr1 :

[email protected]:~$ substr="stretch"

Mari kita buat perbandingan substring:

[email protected]:~$ if [[ $fullstring == *"$substr"* ]]; then

Di sini, * berarti nol atau lebih karakter. Saya harap Anda terbiasa dengan konsep kutipan dalam skrip bash. $substr di dalam tanda kutip menggantikannya dengan nilainya.

Pada dasarnya, Anda memeriksa apakah string lengkap cocok dengan jenis pola xxxxsubstrxxxx.

Anda juga dapat menggunakan substring secara langsung daripada menggunakannya melalui variabel seperti ini:

[email protected]:~$ if [[ $fullstring == *"stretch"* ]]; then

Anda mendapatkan intinya. Biarkan saya melengkapi skrip ini dengan pernyataan lain yang menunjukkan pesan alternatif jika substring tidak ditemukan:

#!/bin/bash

fullstring="This is a string with a stretch"
substr="stretch"

if [[ $fullstring == *"$substr"* ]]; then
        echo "Found $substr!"
else
        echo "$substr not found!"
fi

Anda dapat dengan mudah melihat bahwa jika Anda menjalankan skrip shell di atas, ia akan menemukan substringnya.

[email protected]:~$ bash substr.sh
Found stretch!

Contoh dunia nyata yang lebih baik untuk menemukan substring di bash

Substring bisa sangat membantu dalam skrip untuk "berinteraksi" dengan pengguna. Gunakan perintah baca agar skrip bash Anda menerima masukan pengguna.

echo "Hey there..what is your name?"
read Name
echo "Hello "$name"! The Matrix Resurrections trailer is here! Is your pill Red or Blue?"
read Pill
if [[ $Pill == *"Red"* || $Pill == *"red"* ]]; then
  echo "Welcome..to the real world "$Name"!"
else
  echo "Wake Up "$Name"!"
fi

Berikan izin yang dapat dieksekusi dan jalankan skrip:

[email protected]:~$ chmod +x makeyourchoice.sh
[email protected]:~$ ./makeyourchoice.sh

Output untuk skrip di atas:

Hey there..what is your name?
avimanyu
Hello avimanyu! The Matrix Resurrections trailer is here! Is your pill Red or Blue?
I have Red pill
Welcome..to the real world avimanyu!

Di sini, saya membuat kondisi if sedikit lebih baik dengan memperhatikan dua kemungkinan kemungkinan sensitivitas huruf. Hanya Red adalah substring di sini. Tapi red merupakan masukan yang mungkin juga. Jadi, saya menambahkan kondisi lain. || menunjukkan “atau”. Jika Anda memasukkan Red , itu adalah substring. Tapi meskipun red bukan satu, saya harus menambahkannya.

Menemukan substring di bash menggunakan perintah grep

Inilah cara lain untuk menemukan substring dalam string di bash. Gunakan perintah grep dengan cara ini:

if grep -q "$substr" <<< "$fullstring"; then echo "Found"; fi

q options berarti grep akan berada dalam mode senyap, tidak menampilkan output apa pun. Harap diingat bahwa ada 3 <, bukan hanya 2.

Saya harap tutorial singkat ini membantu Anda dalam mencari substring tertentu dalam sebuah string. Jika Anda memiliki pertanyaan atau saran, jangan ragu untuk meninggalkan komentar di bawah. Btw..pil apa yang kamu pilih? Apakah Anda membuat pilihan Anda?


Linux
  1. Periksa apakah String Berisi Substring di Python

  2. Bagaimana cara memeriksa syslog di Bash di Linux?

  3. Bagaimana cara memeriksa apakah suatu file kosong di Bash?

  1. Cara memeriksa apakah sebuah string berisi karakter khusus ([email protected]#$%^&*()_+)

  2. bash - temukan posisi indeks string dari substring

  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 Membaca String Sebagai Angka Hex Di Bash?

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