3
สลับการเกิดทั้งหมดสองสายโดยใช้ sed
สมมติว่าฉันมีไฟล์ที่มีการเกิดขึ้นหลายครั้งของทั้ง 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 ไม่ได้เกิดขึ้นในไฟล์ ในขณะที่นี่ไม่ใช่ปัญหาในทางปฏิบัติวิธีนี้ยังคงรู้สึกสกปรก - นั่นคือมันรู้สึกเหมือนเป็นโอกาสที่จะเรียนรู้เวทมนตร์ยูนิกซ์มากขึ้น :)
13
sed