Android

วิธีการตรวจสอบว่าสตริงมีสตริงย่อยในทุบตี

ये कà¥?या है जानकार आपके à¤à¥€ पसीने छà¥?ट ज

ये कà¥?या है जानकार आपके à¤à¥€ पसीने छà¥?ट ज

สารบัญ:

Anonim

หนึ่งในการดำเนินการที่พบบ่อยที่สุดเมื่อทำงานกับสตริงใน Bash คือการพิจารณาว่าสตริงมีสตริงอื่นหรือไม่

เราจะแสดงให้คุณเห็นหลายวิธีในการตรวจสอบว่าสตริงมีสตริงย่อยหรือไม่

ใช้สัญลักษณ์แทน

วิธีที่ง่ายที่สุดคือล้อมรอบสตริงย่อยด้วยสัญลักษณ์ดอกจัน (สัญลักษณ์ดอกจัน) * และเปรียบเทียบกับสตริง สัญลักษณ์แทนคือสัญลักษณ์ที่ใช้แทนศูนย์หนึ่งตัวอักษรหรือมากกว่านั้น

หากการทดสอบส่งคืน true สตริงย่อยจะอยู่ในสตริง

ในตัวอย่างด้านล่างเราใช้คำสั่ง if และตัวดำเนินการเท่าเทียมกัน ( == ) เพื่อตรวจสอบว่าพบซับสตริง SUB ภายในสตริง STR :

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

เมื่อดำเนินการสคริปต์จะส่งออก:

It's there.

การใช้ตัวดำเนินการเคส

แทนที่จะใช้คำสั่ง if คุณยังสามารถใช้คำสั่ง case เพื่อตรวจสอบว่าสตริงมีสตริงอื่นหรือไม่

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

การใช้ Regex Operator

ตัวเลือกอื่นเพื่อตรวจสอบว่าสตริงย่อยที่ระบุเกิดขึ้นภายในสตริงหรือไม่คือการใช้ตัวดำเนินการ regex =~ เมื่อใช้โอเปอเรเตอร์นี้สตริงที่ถูกต้องจะถือเป็นนิพจน์ทั่วไป

ระยะเวลาตามด้วยเครื่องหมายดอกจัน .* ตรงกับศูนย์หรือมากกว่าเกิดขึ้นอักขระใด ๆ ยกเว้นอักขระขึ้นบรรทัดใหม่

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

สคริปต์จะดังต่อไปนี้:

It's there.

ใช้ Grep

คำสั่ง grep ยังสามารถใช้เพื่อค้นหาสตริงในสตริงอื่น

ในตัวอย่างต่อไปนี้เรากำลังส่งสตริง $STR เป็นอินพุตไปยัง grep และตรวจสอบว่าพบสตริง $SUB ภายในสตริงอินพุตหรือไม่ คำสั่งจะส่งคืน true หรือ false ตามความเหมาะสม

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

อ็อพชัน -q บอกให้ grep อยู่ในโหมดเงียบเพื่อตัดเอาต์พุต

ข้อสรุป

การตรวจสอบว่าสตริงมีสตริงย่อยเป็นหนึ่งในการดำเนินงานขั้นพื้นฐานและที่ใช้บ่อยที่สุดในการเขียนสคริปต์ Bash

หลังจากอ่านบทช่วยสอนนี้คุณควรมีความเข้าใจอย่างดีเกี่ยวกับวิธีทดสอบว่าสตริงมีสตริงอื่นหรือไม่ คุณยังสามารถใช้คำสั่งอื่น ๆ เช่น awk หรือ sed สำหรับการทดสอบ

bash terminal