Android

Bagaimana untuk memeriksa sama ada rentetan mengandungi substring dalam bash

Java - класс String, методы concat(), contains(), charAt(), substring()

Java - класс String, методы concat(), contains(), charAt(), substring()

Isi kandungan:

Anonim

Salah satu operasi yang paling biasa apabila bekerja dengan rentetan dalam Bash adalah untuk menentukan sama ada rentetan mengandungi string lain atau tidak., kami akan menunjukkan kepada anda beberapa cara untuk memeriksa jika rentetan mengandungi substring.

Menggunakan Wildcards

Pendekatan yang paling mudah adalah mengelilingi substring dengan simbol wildcard asterisk (asterisk) * dan bandingkan dengan rentetan. Wildcard adalah simbol yang digunakan untuk mewakili sifar, satu atau lebih aksara.

Jika ujian kembali true , substring terkandung dalam rentetan.

Dalam contoh di bawah kita menggunakan pernyataan jika dan operator kesamaan ( == ) untuk memeriksa sama ada substring SUB ditemui dalam rentetan STR :

#!/bin/bash STR='GNU/Linux is an operating system' SUB='Linux' if]; then echo "It's there." fi

Apabila disempurnakan skrip akan output:

It's there.

Menggunakan pengendali kes

Daripada menggunakan pernyataan jika anda juga boleh menggunakan pernyataan kes untuk memeriksa sama ada atau tidak rentetan mengandungi rentetan lain.

#!/bin/bash STR='GNU/Linux is an operating system' SUB='Linux' case $STR in *"$SUB"*) echo -n "It's there.";; esac

Menggunakan Operator Regex

Pilihan lain untuk menentukan sama ada substring tertentu berlaku dalam rentetan adalah menggunakan operator regex =~ . Apabila operator ini digunakan, rentetan yang betul dianggap sebagai ungkapan biasa.

Tempoh yang diikuti oleh asterisk .* Sepadan dengan sifar atau lebih banyak kejadian mana-mana watak kecuali watak baru.

#!/bin/bash STR='GNU/Linux is an operating system' SUB='Linux' if]; then echo "It's there." fi

Skrip akan echo yang berikut:

It's there.

Menggunakan Grep

Perintah grep juga boleh digunakan untuk mencari rentetan dalam rentetan lain.

Dalam contoh berikut, kami melewati rentetan $STR sebagai input untuk grep dan memeriksa sama ada rentetan $SUB ditemui dalam rentetan input. Perintah itu akan dikembalikan true atau false sesuai.

#!/bin/bash STR='GNU/Linux is an operating system' SUB='Linux' if grep -q "$SUB" <<< "$STR"; then echo "It's there" fi

Pilihan -q memberitahu grep untuk diam, untuk menghilangkan output.

Kesimpulannya

Memeriksa sama ada rentetan mengandungi substring merupakan salah satu operasi yang paling asas dan sering digunakan dalam skrip Bash.

Selepas membaca tutorial ini, anda harus mempunyai pemahaman yang baik tentang bagaimana untuk menguji sama ada rentetan merangkumi rentetan lain. Anda juga boleh menggunakan arahan lain seperti awk atau sed untuk ujian.

terminal bash