1
วิธีการตรวจสอบให้แน่ใจว่าสตริงที่ถูกสอดแทรกเข้าไปใน `การแทนที่ 'sed` จะหนี metachars ทั้งหมด
ฉันมีสคริปต์ที่อ่านข้อความกระแสและสร้างไฟล์คำสั่ง sed sed -fว่าจะดำเนินการต่อมาเป็น คำสั่ง sed ที่สร้างขึ้นมีลักษณะดังนี้: s/cid:image002\.gif@01CC3D46\.926E77E0/https:\/\/mysite.com\/files\/1922/g s/cid:image003\.gif@01CC3D46\.926E77E0/https:\/\/mysite.com\/files\/1923/g s/cid:image004\.jpg@01CC3D46\.926E77E0/https:\/\/mysite.com\/files\/1924/g สมมติว่าสคริปต์ที่สร้างsedคำสั่งมีลักษณะดังนี้: while read cid fileid do cidpat="$(echo $cid | sed -e s/\\./\\\\./g)" echo 's/'"$cidpat"'/https:\/\/mysite.com\/files\/'"$fileid"'/g' >> sedscr done ฉันจะปรับปรุงสคริปต์เพื่อให้มั่นใจว่าอักขระเมตาของ regex ทั้งหมดในcidสตริงได้รับการยกเว้นและแก้ไขอย่างถูกต้องหรือไม่