<ก่อนหน้านี้ | เนื้อหา | ถัดไป>
แองเคอ
คาเร็ต (^) และเครื่องหมายดอลลาร์ ($) อักขระถือเป็น แองเคอ ในนิพจน์ทั่วไป ซึ่งหมายความว่าจะทำให้การจับคู่เกิดขึ้นก็ต่อเมื่อพบนิพจน์ทั่วไปที่จุดเริ่มต้นของบรรทัด (^) หรือท้ายบรรทัด ($):
[me@linuxbox ~]$ grep -h '^zip' dirlist*.txt
zip zipcloak zipgrep zipinfo zipnote zipsplit
[me@linuxbox ~]$ grep -h 'zip$' dirlist*.txt
gunzip gzip funzip gpg-zip preunzip prezip เปิดเครื่องรูด zip
[me@linuxbox ~]$ grep -h '^zip$' dirlist*.txt
ไปรษณีย์
[me@linuxbox ~]$ grep -h '^zip' dirlist*.txt
zip zipcloak zipgrep zipinfo zipnote zipsplit
[me@linuxbox ~]$ grep -h 'zip$' dirlist*.txt
gunzip gzip funzip gpg-zip preunzip prezip เปิดเครื่องรูด zip
[me@linuxbox ~]$ grep -h '^zip$' dirlist*.txt
ไปรษณีย์
ที่นี่เราค้นหารายการไฟล์สำหรับสตริง "zip" ซึ่งอยู่ที่จุดเริ่มต้นของบรรทัด ท้ายบรรทัด และในบรรทัดที่อยู่ทั้งจุดเริ่มต้นและจุดสิ้นสุดของบรรทัด (เช่น ด้วยตัวเองบน เส้น). โปรดทราบว่านิพจน์ทั่วไป '^$' (จุดเริ่มต้นและจุดสิ้นสุดโดยไม่มีอะไรคั่นกลาง) จะจับคู่กับบรรทัดว่าง
ผู้ช่วยปริศนาอักษรไขว้
ถึงแม้ว่าเราจะมีความรู้เกี่ยวกับนิพจน์ทั่วไปที่จำกัด ณ จุดนี้ เราก็สามารถทำสิ่งที่มีประโยชน์ได้
ภรรยาของฉันชอบปริศนาอักษรไขว้และบางครั้งเธอก็จะขอความช่วยเหลือจากฉันเกี่ยวกับคำถามบางอย่าง บางอย่างเช่น “คำห้าตัวอักษรที่มีตัวอักษรตัวที่สามคือ 'j' และอักษรตัวสุดท้ายคือ 'r' หมายความว่า...?” คำถามแบบนี้ทำให้ผมคิดได้
คุณรู้หรือไม่ว่าระบบ Linux ของคุณมีพจนานุกรมอยู่? มันทำ ลองดูใน /usr/share/dict ไดเร็กทอรีและคุณอาจพบหนึ่งหรือหลายรายการ ไฟล์พจนานุกรมที่มีรายการคำศัพท์ยาวๆ หนึ่งรายการต่อบรรทัด จัดเรียงตามลำดับตัวอักษร ในระบบของฉัน the คำ ไฟล์มีมากกว่า 98,500
คำ. เพื่อค้นหาคำตอบที่เป็นไปได้สำหรับคำถามปริศนาอักษรไขว้ด้านบน เราสามารถทำได้ดังนี้:
[me@linuxbox ~]$ grep -i '^..jr$' /usr/share/dict/words
สาขาวิชาเอก
การใช้นิพจน์ทั่วไปนี้ เราสามารถค้นหาคำทั้งหมดในไฟล์พจนานุกรมของเราที่มีความยาวห้าตัวอักษรและมีตัว “j” ในตำแหน่งที่สามและตัว “r” ในตำแหน่งสุดท้าย