8
แทนที่สตริงที่มีการขึ้นบรรทัดใหม่ในไฟล์ขนาดใหญ่
มีใครรู้บ้างเกี่ยวกับเครื่องมือที่ไม่ใช้บรรทัดในการค้นหา / แทนที่สตริงในวิธีที่ค่อนข้างมีประสิทธิภาพ ดูคำถามนี้ด้วย ฉันมีไฟล์ข้อความ + 2GB ที่ฉันต้องการประมวลผลคล้ายกับสิ่งที่ดูเหมือนจะทำ: sed -e 's/>\n/>/g' ซึ่งหมายความว่าผมต้องการที่จะลบบรรทัดใหม่ทั้งหมดที่เกิดขึ้นหลังจากที่มีแต่ไม่ได้ทุกที่อื่นดังนั้นกฎที่ออกมา>tr -d คำสั่งนี้ (ที่ฉันได้จากคำตอบของคำถามที่คล้ายกัน ) ล้มเหลวด้วยcouldn't re-allocate memory: sed --unbuffered ':a;N;$!ba;s/>\n/>/g' ดังนั้นมีวิธีการอื่นใดโดยไม่หันไปใช้ C? ฉันเกลียด Perl แต่ยินดีที่จะยกเว้นในกรณีนี้ :-) ฉันไม่รู้ว่าตัวละครใดที่ไม่ได้เกิดขึ้นในข้อมูลดังนั้นการแทนที่\nด้วยอักขระอื่นชั่วคราวเป็นสิ่งที่ฉันต้องการหลีกเลี่ยงถ้าเป็นไปได้ มีความคิดที่ดีมีใครบ้าง?