ฉันพยายามsed
แทนที่คำหลักบางคำในไฟล์ขนาดใหญ่ (100 MB) ฉันไม่รู้-i
ตัวเลือก (inplace) ดังนั้นความพยายามครั้งแรกของฉันคือเปลี่ยนเส้นทางดังนี้:
sed 's/original/edited/g' file.log >> file.log
เกิดอะไรขึ้นหลังจากนั้นก็คือว่าพีซีของฉันหยุดชะงักแทบจะไม่มีการป้อนข้อมูลด้วยแป้นพิมพ์ ฉันพยายามที่แตกต่างกันคอนโซลCtrl+ Alt+ F1แต่หลังจากที่ช้าป้อนชื่อผู้ใช้ก็หยุดเกินไป ไม่มีคีย์บอร์ดตัวเลือกเดียวของฉันคือการรีเซ็ตฮาร์ดแวร์ของเครื่อง หลังจากเข้าสู่ระบบฉันเห็นว่า file.log มีขนาดประมาณ 8 GB
ฉันอยากจะเข้าใจว่าทำไมการดำเนินการของคำสั่งนั้นจึงทำให้ระบบไม่ตอบสนองและหากมีกลไกที่ระดับระบบเพื่อกระตุ้นการแจ้งเตือนและฆ่ากระบวนการที่กระทำผิด
free -h
ไหม
ex -sc '%s/original/edited/ge|x' file.log
ควรทำสิ่งที่คุณต้องการในลักษณะสำนวน UNIX โดยไม่มีsed -i
ผลข้างเคียง