exเครื่องมือที่ดีที่สุดสำหรับการแก้ไขไฟล์ไม่โต้ตอบในสถานที่เป็น
ex -sc '%s/\(\.com\).*/\1/ | x' file.txt
หากคุณเคยใช้viและหากคุณเคยพิมพ์คำสั่งที่เริ่มต้นด้วยโคลอน:คุณจะต้องใช้คำสั่ง ex แน่นอนคำสั่งขั้นสูงหรือ "แฟนซี" จำนวนมากที่คุณสามารถดำเนินการได้ด้วยวิธีนี้คือ Vim Extensions (เช่น:bufdo) และไม่ได้กำหนดไว้ในข้อกำหนด POSIX สำหรับexแต่รายละเอียดเหล่านั้นอนุญาตให้มีการศึกษาระดับปริญญาที่น่าอัศจรรย์อย่างแท้จริงของอำนาจและความยืดหยุ่นในการไม่เห็น การแก้ไขข้อความ (ไม่ว่าจะเป็นแบบโต้ตอบหรืออัตโนมัติ)
คำสั่งดังกล่าวมีหลายส่วน
-s เปิดใช้งานโหมดเงียบเพื่อเตรียมพร้อม exสำหรับการใช้งานเป็นกลุ่ม (ไม่แสดงข้อความเอาต์พุตและอื่น ๆ )
-c ระบุคำสั่งให้ดำเนินการครั้งเดียวไฟล์ (file.txtในกรณีนี้) ถูกเปิดในบัฟเฟอร์
% เป็นตัวระบุที่อยู่ที่เทียบเท่า 1,$ - หมายความว่าคำสั่งต่อไปนี้จะใช้กับทุกบรรทัดของบัฟเฟอร์
sเป็นคำสั่งทดแทนที่คุณน่าจะคุ้นเคยอยู่แล้ว มันถูกใช้โดยทั่วไปในviและมีคุณสมบัติเหมือนกันกับsคำสั่งของsedแม้ว่าคุณสมบัติขั้นสูงบางอย่างของ regex อาจแตกต่างกันไปตามการใช้งาน ในกรณีนี้จาก ".com" ถึงจุดสิ้นสุดของบรรทัดจะถูกแทนที่ด้วยเพียงแค่ ".com"
แถบแนวตั้งจะแยกคำสั่งตามลำดับที่จะดำเนินการ ในexการนำไปใช้(ส่วนใหญ่) คุณยังสามารถใช้-cตัวเลือกเพิ่มเติมเช่น:
ex -sc '%s/\(\.com\).*/\1/' -c x file.txt
อย่างไรก็ตาม POSIX นี้ไม่จำเป็น
xออกคำสั่งหลังจากที่เขียนการเปลี่ยนแปลงใด ๆ ไปยังแฟ้ม ซึ่งแตกต่างจากwqที่หมายถึง "เขียนและออก" xเพียงเขียนไปยังไฟล์หากบัฟเฟอร์ได้รับการแก้ไข ดังนั้นหากไฟล์ของคุณไม่มีการเปลี่ยนแปลงการประทับเวลาจะถูกเก็บไว้
.comเท่านั้นแทนที่จะลบทุกอย่างหลังจากและรวมถึง/อักขระตัวแรกหรือไม่ ถ้าคุณมี URL เหมือนen.wikipedia.org/wiki/Ubuntuในรายการของคุณ