Menyemak Subrentetan dalam Skrip Bash

Bash

Pengenalan kepada String Containment dalam Bash

Apabila bekerja dengan skrip Bash, adalah perkara biasa untuk menghadapi situasi di mana anda perlu menyemak sama ada rentetan mengandungi subrentetan tertentu. Ini adalah tugas asas dalam banyak senario skrip, seperti menghuraikan data input, mengesahkan rentetan atau menapis kandungan berdasarkan kriteria tertentu.

Dalam artikel ini, kami akan meneroka kaedah yang berbeza untuk mencapai ini dalam Bash, termasuk menggunakan pernyataan dan arahan bersyarat seperti `echo` dan `grep`. Kami juga akan membincangkan pendekatan yang paling cekap dan boleh dibaca untuk menjadikan skrip anda lebih boleh diselenggara dan kurang terdedah kepada ralat.

Perintah Penerangan
[[ ]] Ungkapan bersyarat yang digunakan untuk menguji rentetan dan syarat lain dalam Bash.
* Watak kad bebas yang digunakan untuk mewakili sebarang bilangan aksara dalam padanan corak rentetan.
echo Perintah yang digunakan untuk memaparkan baris teks atau rentetan yang diluluskan sebagai hujah.
grep Utiliti baris arahan untuk mencari data teks biasa untuk baris yang sepadan dengan ungkapan biasa.
-q Pilihan untuk grep yang menyekat keluaran biasa dan hanya mengembalikan status keluar.
case Pernyataan bersyarat yang digunakan untuk memadankan corak dalam Bash.
;; Pembatas yang digunakan dalam pernyataan kes untuk memisahkan tindakan corak yang berbeza.

Memahami Semakan Subrentetan dalam Bash

Dalam skrip pertama, kami gunakan untuk menyemak sama ada rentetan mengandungi subrentetan tertentu. Kami mentakrifkan rentetan utama dan subrentetan, kemudian gunakan membina, yang membolehkan perbandingan rentetan lanjutan. Di dalam kurungan, kami menggunakan kad bebas untuk mewakili sebarang bilangan aksara sebelum dan selepas subrentetan. Jika syarat itu benar, skrip mencetak "Ia ada!"; jika tidak, ia mencetak "Ia tidak ada!". Kaedah ini cekap dan menggunakan keupayaan terbina dalam Bash untuk padanan corak.

Skrip kedua menggunakan dan perintah untuk mencapai hasil yang sama. Kami sekali lagi menentukan rentetan utama dan subrentetan, kemudian gunakan untuk mengeluarkan rentetan utama dan menyalurkannya ke grep menggunakan pilihan untuk menyekat keluaran biasa. mencari subrentetan dalam rentetan utama. Jika subrentetan ditemui, skrip mencetak "Ia ada!"; jika tidak, ia mencetak "Ia tidak ada!". Pendekatan ini memanfaatkan keupayaan pencarian teks yang berkuasa , menjadikannya sesuai untuk skrip yang corak teks kompleks perlu dipadankan.

Meneroka Operasi Rentetan Bash Lanjutan

Skrip ketiga menggunakan a pernyataan untuk memeriksa kehadiran subrentetan. Selepas mentakrifkan rentetan utama dan subrentetan, the pernyataan sepadan dengan rentetan utama dengan corak yang berbeza. Jika subrentetan hadir, tindakan yang sepadan akan dilaksanakan, mencetak "Ia ada!". Jika subrentetan tidak ditemui, tindakan lalai akan mencetak "Ia tiada!". Kaedah ini amat berguna apabila terdapat berbilang corak untuk diperiksa, sebagai pernyataan boleh mengendalikan logik cawangan kompleks dengan lebih bersih daripada berbilang if-else kenyataan.

Secara keseluruhan, setiap kaedah ini menyediakan cara untuk menentukan sama ada rentetan mengandungi subrentetan tertentu dalam Bash. Pilihan kaedah bergantung pada kerumitan padanan rentetan yang diperlukan dan keperluan khusus skrip. menggunakan dengan kad bebas adalah mudah dan cekap untuk semakan mudah, sambil menggabungkan dan menawarkan padanan corak yang lebih berkuasa. The case kenyataan, sebaliknya, sesuai untuk mengendalikan berbilang keadaan padanan secara berstruktur.

Menggunakan Pernyataan Bersyarat untuk Menyemak Substring dalam Bash

Kaedah Skrip Bash

#!/bin/bash
# Define the main string
string="My string"
# Define the substring to search for
substring="foo"
# Check if the substring is present in the main string
if [[ "$string" == *"$substring"* ]]; then
  echo "It's there!"
else
  echo "It's not there!"
fi

Menggunakan Echo dan Grep untuk Mengesan Substring dalam Bash

Menggabungkan Perintah Echo dan Grep

#!/bin/bash
# Define the main string
string="My string"
# Define the substring to search for
substring="foo"
# Use echo and grep to check if the substring is present
if echo "$string" | grep -q "$substring"; then
  echo "It's there!"
else
  echo "It's not there!"
fi

Menggunakan Pernyataan Kes untuk Pengesanan Substring dalam Bash

Skrip Bash dengan Pernyataan Kes

#!/bin/bash
# Define the main string
string="My string"
# Define the substring to search for
substring="foo"
# Use case statement to check for the substring
case "$string" in
  *"$substring"*)
    echo "It's there!"
    ;;
  *)
    echo "It's not there!"
    ;;
esac

Kaedah Lanjutan untuk Pengekalan Rentetan dalam Bash

Selain kaedah asas untuk menyemak sama ada rentetan mengandungi subrentetan dalam Bash, terdapat teknik yang lebih maju yang boleh berguna dalam senario yang berbeza. Satu kaedah sedemikian melibatkan penggunaan ungkapan biasa dengan perintah. ialah bahasa pengaturcaraan yang berkuasa untuk pengimbasan dan pemprosesan corak. Dengan menggunakan , anda boleh melakukan operasi rentetan yang kompleks dengan fleksibiliti yang lebih besar. Sebagai contoh, anda boleh menggunakan awk untuk mencari subrentetan dalam rentetan dan melaksanakan tindakan berdasarkan padanan.

Satu lagi teknik lanjutan melibatkan penggunaan arahan, yang bermaksud editor strim. berguna untuk menghuraikan dan mengubah teks dalam aliran data atau fail. Anda boleh gunakan untuk mencari subrentetan dan melakukan penggantian atau operasi lain pada teks yang dipadankan. Kaedah lanjutan ini, walaupun lebih kompleks, menawarkan keupayaan berkuasa untuk pemprosesan teks dalam skrip Bash, menjadikannya tidak ternilai untuk tugas yang memerlukan manipulasi rentetan yang canggih.

Soalan Lazim tentang String Containment dalam Bash

  1. Bagaimanakah saya menyemak sama ada rentetan mengandungi subrentetan menggunakan ?
  2. Untuk menyemak sama ada rentetan mengandungi subrentetan menggunakan , anda boleh menggunakan arahan:
  3. Boleh saya guna untuk menyemak subrentetan?
  4. Ya, anda boleh gunakan untuk menyemak subrentetan dengan arahan:
  5. Apakah kelebihan menggunakan habis ?
  6. menyediakan keupayaan pemprosesan teks yang lebih berkuasa dan boleh melakukan tindakan berdasarkan padanan corak, menjadikannya lebih serba boleh daripada .
  7. Bagaimanakah saya boleh mengabaikan kes apabila mencari subrentetan?
  8. Untuk mengabaikan kes semasa mencari subrentetan, anda boleh menggunakan pilihan dengan :
  9. Adakah boleh digunakan dengan kenyataan dalam Bash?
  10. Ya, anda boleh menggunakan regex dengan pernyataan dalam Bash dengan menggunakan pengendali:

Pemikiran Akhir tentang Pengekalan Rentetan dalam Bash

Menentukan sama ada rentetan mengandungi subrentetan dalam Bash ialah tugas biasa yang boleh dilakukan menggunakan beberapa kaedah, termasuk pernyataan bersyarat, perintah grep dan pernyataan kes. Setiap kaedah menyediakan pendekatan unik untuk menyelesaikan masalah, membolehkan anda memilih yang paling sesuai berdasarkan keperluan khusus anda. Dengan menguasai teknik ini, anda boleh meningkatkan kecekapan dan kebolehbacaan skrip Bash anda.