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
ในรายการของคุณ