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