เมื่อต้องจัดการกับอินพุตที่ไม่ได้รับอนุญาตฉันชอบที่จะเห็นงานทั้งหมดที่ 'สะกดออก' ทีละบรรทัดสำหรับการตรวจสอบด้วยภาพก่อนที่ฉันจะเรียกใช้ (โดยเฉพาะอย่างยิ่งเมื่อมันเป็นสิ่งที่ทำลายล้าง
ดังนั้นสิ่งที่ฉันทำคือสร้างรายการของพารามิเตอร์ (เช่น. ชื่อผู้ใช้), ฟีดมันไปยังไฟล์ในรูปแบบหนึ่งบันทึกต่อบรรทัดเช่นนี้
johndoe
jamessmith
janebrown
จากนั้นฉันจะเปิดรายการvim
และรวมเข้าด้วยกันด้วยการค้นหาและแทนที่นิพจน์จนกว่าฉันจะได้รับรายการคำสั่งเต็มรูปแบบที่จำเป็นต้องดำเนินการเช่นนี้:
/bin/rm -fr /home/johndoe
/bin/rm -fr /home/jamessmith
วิธีนี้หาก regex ของคุณไม่สมบูรณ์คุณจะเห็นว่าคำสั่งใดจะมีปัญหาที่อาจเกิดขึ้น (เช่น/bin/rm -fr johnnyo connor
) วิธีนี้คุณสามารถยกเลิกการ regex ของคุณและลองอีกครั้งด้วยรุ่นที่เชื่อถือได้มากขึ้น ชื่อ mangling มีชื่อเสียงสำหรับเรื่องนี้เพราะมันยากที่จะดูแลทุกกรณีขอบเช่น Van Gogh, O'Connors, เซนต์แคลร์, Smith-Wesson
การมีset hlsearch
ประโยชน์สำหรับการทำเช่นนี้vim
เนื่องจากมันจะเน้นการแข่งขันทั้งหมดดังนั้นคุณสามารถมองเห็นได้อย่างง่ายดายหากมันไม่ตรงหรือตรงกับในลักษณะที่ไม่ได้ตั้งใจ
เมื่อ regex ของคุณสมบูรณ์แบบและจับทุกกรณีที่คุณสามารถทดสอบ / คิดแล้วฉันมักจะแปลงเป็นนิพจน์ sed เพื่อให้อัตโนมัติโดยสมบูรณ์สำหรับการทำงานอื่น
สำหรับกรณีที่จำนวนบรรทัดสัญญาณเข้าป้องกันไม่ให้คุณทำการตรวจสอบด้วยภาพฉันขอแนะนำให้สะท้อนคำสั่งไปยังหน้าจอ (หรือยังดีกว่าบันทึก) ก่อนที่จะดำเนินการดังนั้นหากเกิดข้อผิดพลาดคุณรู้ว่าคำสั่งใดที่ทำให้เกิด มันล้มเหลว จากนั้นคุณสามารถกลับไปที่ regex ดั้งเดิมของคุณและปรับอีกครั้ง
printf "foo bar\nbaz bat" | xargs echo whee
whee foo bar baz bat
อาจจะเพิ่ม-L
หรือ-n
ตัวเลือก?