การใช้sedเพื่อปรับเปลี่ยนไฟล์ในสถานที่:
sed -i '/^\(report\|-t\(h\|o\)\)/!d' your_file
สิ่งนี้แนะนำsedให้ลบบรรทัดทั้งหมดที่ไม่ตรงกับรูปแบบ รูปแบบที่ตัวเองเป็น^(เริ่มต้นของเส้น) ตามด้วยการอย่างใดอย่างหนึ่งreportหรือ-tตามอย่างใดอย่างหนึ่งหรือho
คุณควรทราบว่านี่ไม่ใช่การดัดแปลงแบบแทนที่: sedสร้างสำเนาสำรองชั่วคราวและเขียนทับไฟล์ต้นฉบับด้วย
หากคุณต้องการsedเก็บสำเนาสำรองของไฟล์ดั้งเดิม (ซึ่งอาจเป็นความคิดที่ดีถ้าไฟล์มีข้อมูลที่สำคัญ) ให้-iสลับส่วนขยายเพื่อสร้างไฟล์สำรอง:
sed -i'.bak' -e '/^\(report\|-t\(h\|o\)\)/!d' your_file
จะปรับเปลี่ยนและสร้างการสำรองข้อมูลของเดิมที่เรียกว่าyour_fileyour_file.bak
ข้อความด้านข้าง
โปรดอย่าเข้าใจผิดความตั้งใจของฉันหรือทำผิดที่นี้ แต่ฉันสังเกตเห็นว่าคุณมีคำถามที่เกี่ยวข้องกับการประมวลผล regex / ข้อความที่คล้ายกันมากมาย ผมแนะนำให้คุณเริ่มต้นการเรียนรู้sed, awkและgrepตัวคุณเองที่จะช่วยเพิ่มความเร็วในการผลิตของคุณ อย่าเข้าใจฉันผิดฉันดีใจเกินกว่าจะช่วยได้ (เหมือนคนส่วนใหญ่ที่นี่); เป็นเพียงที่ฉันคิดว่าคุณจะได้รับประโยชน์อย่างมหาศาลจากการเลือกใช้เครื่องมือเหล่านี้สำหรับการใช้ชีวิตประจำวัน
เพียงเพื่อพิสูจน์ว่าผู้คนช่วยเหลือคุณอย่างไรให้พิจารณาข้อเสนอแนะของ @ slm ในความคิดเห็นด้านล่างและอย่าลังเลที่จะแวะมาที่ห้องสนทนานี้เมื่อใดก็ได้สำหรับคำถาม