ฉันเคยเห็นตัวอย่างนี้:
hello=ho02123ware38384you443d34o3434ingtod38384day
echo ${hello//[0-9]/}
ซึ่งตามไวยากรณ์นี้: ${variable//pattern/replacement}
น่าเสียดายที่pattern
เขตข้อมูลนั้นดูเหมือนจะไม่สนับสนุนไวยากรณ์แบบเต็มของ regex (ถ้าฉันใช้.
หรือ\s
ตัวอย่างเช่นมันพยายามจับคู่อักขระตามตัวอักษร)
ฉันจะค้นหา / แทนที่สตริงโดยใช้ไวยากรณ์ regex แบบเต็มได้อย่างไร
\s
ไม่ใช่ส่วนหนึ่งของไวยากรณ์นิพจน์ปกติที่กำหนด POSIX มาตรฐาน (ไม่ใช่ BRE หรือ ERE) มันเป็นส่วนขยาย PCRE และส่วนใหญ่ไม่สามารถใช้ได้จากเชลล์ [[:space:]]
เทียบเท่าสากลมากขึ้น
\s
สามารถแทนที่ด้วย[[:space:]]
, โดยวิธี, .
โดย?
, และส่วนขยาย extglob ไปยังภาษารูปแบบเชลล์พื้นฐานสามารถใช้สำหรับสิ่งต่าง ๆ เช่นกลุ่มย่อยทางเลือก, กลุ่มซ้ำ, และสิ่งที่คล้ายกัน