Skip to content

emka.web.id

Menu
  • Home
  • Indeks Artikel
  • Tutorial
  • Tentang Kami
Menu

Bagaimana Mengenalinya Jika Bash String Berisi Substring di Linux

Posted on September 17, 2022 by Syauqi Wiryahasana
Terkadang dalam skrip Linux, Anda ingin mengetahui apakah string teks berisi string tertentu yang lebih kecil. Ada banyak cara untuk melakukan ini. Kami menunjukkan kepada Anda beberapa teknik sederhana dan andal.

Mengapa Ini Berguna?

Mencari string untuk substring yang lebih kecil adalah persyaratan umum. Salah satu contohnya adalah membaca teks dari file atau dari input manusia dan mencari string untuk substring tertentu sehingga skrip Anda dapat memutuskan apa yang harus dilakukan selanjutnya. Mungkin mencari label atau nama perangkat dalam file konfigurasi atau string perintah di baris input dari pengguna. Linux pengguna diberkati dengan sejumlah utilitas untuk memanipulasi teks. Beberapa dibangun ke dalam shell Bash, yang lain disediakan sebagai utilitas atau aplikasi mandiri. Ada alasan mengapa sistem operasi turunan Unix kaya akan kemampuan manipulasi string. Beberapa hal yang tampak seperti file bukanlah file sederhana. Mereka adalah file khusus yang mewakili hal-hal seperti perangkat keras dan sumber informasi sistem. Abstraksi yang dilakukan oleh sistem operasi memberi mereka tampilan dan karakteristik file. Anda dapat membaca informasi darinya—sebagai teks, tentu saja—dan dalam beberapa kasus menulisnya, tetapi itu bukan file biasa. Text juga digunakan sebagai input dan output untuk perintah di jendela terminal. Ini memungkinkan pengalihan dan pemipaan input dan output. Fungsionalitas tersebut mendukung kemampuan untuk merangkai urutan perintah Linux bersama-sama, meneruskan output dari satu perintah sebagai input ke perintah berikutnya. Terlepas dari asalnya, mencari teks yang kami terima untuk kata, perintah, label, atau indikator penting lainnya adalah bagian standar berurusan dengan data berbasis teks. Berikut ini kumpulan teknik sederhana yang dapat Anda sertakan dalam skrip Anda sendiri.

Menemukan Substring Dengan Bash Builtins

Uji perbandingan string “[[...]]” tanda kurung ganda dapat digunakan dalam pernyataan  jika untuk menentukan apakah satu string berisi string lain. Copy skrip ini ke dalam editor, dan simpan ke file bernama “double.sh.” #!/bin/bash if [[ "monkey" = *"key"* ]]; lalu   echo "key is in monkey" else   echo "key is not in monkey" fi Anda harus membuat skrip dapat dieksekusi dengan perintah chmod. Ini adalah langkah yang selalu diperlukan untuk membuat skrip apa pun dapat dieksekusi. Anda harus melakukan ini setiap kali Anda membuat file skrip. Ganti nama skrip yang sesuai di setiap case.
chmod +x double.sh
Mari kita jalankan skrip.
./double.sh
Ini berfungsi karena tanda bintang ” * ” mewakili urutan karakter apa pun, termasuk tanpa karakter. Jika "kunci" substring terletak di dalam string target, dengan atau tanpa karakter apa pun di depan atau di belakangnya, tes akan mengembalikan true. Dalam contoh kita, ada karakter di depan substring. Ini dicocokkan dengan tanda bintang pertama. Tidak ada huruf di belakang substring tetapi, karena tanda bintang juga tidak cocok dengan karakter, pengujian tetap lolos. Untuk fleksibilitas, kita dapat memodifikasi skrip untuk menangani variabel alih-alih string literal. Ini adalah skrip “double2.sh.” #!/bin/bash string="Monkey" substring="key" if [[ $string = *$substring* ]]; lalu echo "$substring ditemukan di $string" else echo "$substring tidak ditemukan di $string" fi Mari kita lihat bagaimana cara kerjanya.
./double2.sh
Ini bekerja dengan cara yang sama, dengan keuntungan kita dapat menggunakan nama variabel bukannya string literal. Mengubah solusi kecil kami menjadi sebuah fungsi akan memberikan fleksibilitas paling besar. Ini adalah skrip “double3.sh.” #!/bin/bash shopt -s nocasematch string="Monkey" substring="Key" capital="London" check_substring ( ) { jika [[ $1 = *$2* ]]; lalu echo "$2 ditemukan di $1" else echo "$2 tidak ditemukan di $1" fi } check_substring "Monyet" "key" check_substring $string $substring check_substring $string "pisang" check_substring "Wales" $capital Kami memanggil fungsi check_substring kami menggunakan campuran variabel dan string literal. Kami menggunakan shopt dengan opsi -s (set) untuk mengatur nocasematch, untuk membuat kecocokan case-insensitive. Begini cara menjalankannya.
./double3.sh
Kita juga dapat menggunakan trik membungkus substring dengan tanda bintang dalam pernyataan case. Ini adalah “case.sh.” #!/bin/bash shopt -s nocasematch string="Wallaby" substring="Wall" case $string in *$substring*) echo "$substring ditemukan di $string" ;; *) echo "Tidak ada yang cocok: $string" ;; esac Menggunakan pernyataan kasus alih-alih pernyataan if yang sangat panjang dapat membuat skrip lebih mudah dibaca dan di-debug. Jika Anda perlu memeriksa apakah string berisi salah satu dari banyak kemungkinan substring, pernyataan kasus akan menjadi pilihan terbaik.
./case.sh
Substring ditemukan.

Menemukan Substring Dengan grep

Di luar bawaan Bash, alat pencarian teks pertama Anda akan mungkin meraih adalah grep. Kita dapat menggunakan kemampuan bawaan grep untuk mencari string di dalam string untuk mencari substring kita. Script ini disebut “subgrep.sh.” #!/bin/bash string="porridge pot" substring="ridge" if $(echo $string | grep -q $substring); lalu echo "$substring ditemukan di $string" else echo "$substring tidak ditemukan di $string" fi Script menggunakan echo untuk mengirim string ke grep, yang mencari substring. Kami menggunakan opsi -q (quiet) untuk menghentikan grep menulis apa pun ke output standar. Jika hasil dari perintah di dalam tanda kurung “(...)” sama dengan nol, artinya cocok ditemukan. Karena nol sama dengan true di Bash, pernyataan if dipenuhi dan klausa then dieksekusi. Mari kita lihat apa outputnya.
./subgrep.sh
Menemukan Substring Dengan sed Kita juga dapat menggunakan sed untuk menemukan substring. By default, sed mencetak semua teks yang dimasukkan ke dalamnya. Menggunakan sed -n mencegah ini. Satu-satunya garis yang dicetak adalah garis yang cocok. Ekspresi ini akan mencetak setiap baris yang cocok atau berisi nilai $substring.
"/$substring/p"
Kami memasukkan nilai $string ke sed menggunakan pengalihan di sini, Itulah berita seputar Bagaimana Mengenalinya Jika Bash String Berisi Substring di Linux, semoga bermanfaat. Disadur dari HowToGeek.com.
Seedbacklink

Recent Posts

TENTANG EMKA.WEB>ID

EMKA.WEB.ID adalah blog seputar teknologi informasi, edukasi dan ke-NU-an yang hadir sejak tahun 2011. Kontak: kontak@emka.web.id.

©2024 emka.web.id Proudly powered by wpStatically