ฉันมีไฟล์ที่มี xml หลายบรรทัด ฉันต้องการแทนที่บางส่วนของไฟล์ บางส่วนของไฟล์มีเครื่องหมายอัญประกาศ ( ") ซึ่งฉันต้องการแทนที่ ฉันพยายามหลีกเลี่ยงเครื่องหมายคำพูดด้วย\แต่ฉันไม่คิดว่ามันจะทำงานได้ตามผลลัพธ์ของไฟล์ของฉัน
นี่คือตัวอย่างของคำสั่ง sed ของฉัน:
sed -e "s/\"text\"/'text'/ig" file.xml > temp.tmp
นี่เป็นวิธีที่คุณหลีกเลี่ยงเครื่องหมายคำพูดในคำสั่ง sed หรือฉันกำลังทำอะไรผิดหรือเปล่า?
\"วิธีที่ถูกต้องในการหนีเครื่องหมายคำพูดในคำสั่ง sed คืออะไร?
"ไม่จำเป็นหรือสนับสนุนการหลบหนี แต่คำสั่งเชลล์ของคุณใช้สตริงที่มีเครื่องหมายคำพูดคู่และ\"ถูกต้องที่นั่น sedโปรแกรมเห็นเป็นอาร์กิวเมนต์ไปs/"text"/'text'/ig -e
s/\"text\" /'text'/igจะพบเฉพาะ"text" กับพื้นที่หลังจากนั้น
sedเป็นเครื่องมือที่เหมาะสมสำหรับงานหรือคุณอาจต้องการตัวแยกวิเคราะห์ XML
"text"'text'แน่นอนว่ามันจะไม่ทำอะไร"othertext"เลย แสดงบรรทัดอินพุตสองสามบรรทัดเอาต์พุตที่ไม่ต้องการที่สอดคล้องกันและอธิบายเอาต์พุตที่คุณต้องการแทน