ฉันใช้ sed เพื่อค้นหาและแทนที่รูปแบบภายในไฟล์ SAS ที่ฉันมีแทนที่จะเปลี่ยนทีละรายการ ปัญหาคือฉันพยายามแทนที่ตัวแปรมาโครและเมื่อฉันใช้เครื่องหมายและมันไม่ได้ประมวลผลอย่างถูกต้อง
Here's my code:
sed -ie 's/user=&uid./user=&sysuserid./g' *_table_*.sas
เมื่อใดก็ตามที่ฉันเรียกใช้คำสั่งนี้ดูเหมือนว่าจะผนวกและทำสิ่งที่ขี้ขลาดทุกชนิดด้วยข้อความต้นฉบับ
คำถาม: ฉันจะแทนที่ข้อความที่มีเครื่องหมายภายในด้วยคำสั่ง sed ได้อย่างไร
&
เป็นตัวละครพิเศษดังนั้นจึงจำเป็นต้องหลบหนีเมื่อใช้ใน RHS - ในกรณีของคุณคุณต้องวิ่ง's/user=&uid./user=\&sysuserid./g'
แม้ว่าฉันสงสัยว่าคุณยังต้องหลบหนีจุดใน LHS เพื่อให้ตรงกับจุดตามตัวอักษรดังนั้นคุณต้อง's/user=&uid\./user=\&sysuserid./g'