สมมติว่าฉันมีไฟล์ที่มีการเกิดขึ้นหลายครั้งของทั้ง StringA และ StringB ฉันต้องการแทนที่การเกิดขึ้นทั้งหมดของ StringA ด้วย StringB และ (พร้อมกัน) การเกิดขึ้นทั้งหมดของ StringB ด้วย StringA
ตอนนี้ฉันกำลังทำอะไรบางอย่าง
cat file.txt | sed 's/StringB/StringC/g' | sed 's/StringA/StringB/g' | sed 's/StringC/StringA/g'
ปัญหาเกี่ยวกับวิธีการนี้คือสมมติว่า StringC ไม่ได้เกิดขึ้นในไฟล์ ในขณะที่นี่ไม่ใช่ปัญหาในทางปฏิบัติวิธีนี้ยังคงรู้สึกสกปรก - นั่นคือมันรู้สึกเหมือนเป็นโอกาสที่จะเรียนรู้เวทมนตร์ยูนิกซ์มากขึ้น :)
sed: can't read s/StringB/StringA/g: No such file or directoryบอกฉัน ดูเหมือน-e t PATTERNจะไม่เป็นที่เข้าใจกัน