Bất cứ ai cũng biết về một công cụ không dựa trên dòng để tìm kiếm / thay thế chuỗi "nhị phân" theo cách có hiệu quả bộ nhớ? Xem câu hỏi này quá.
Tôi có tệp văn bản + 2GB mà tôi muốn xử lý tương tự như những gì điều này dường như làm:
sed -e 's/>\n/>/g'
Điều đó có nghĩa là, tôi muốn xóa tất cả các dòng mới xảy ra sau một >
, nhưng không phải bất cứ nơi nào khác, để loại trừ tr -d
.
Lệnh này (mà tôi nhận được từ câu trả lời của một câu hỏi tương tự ) không thành công với couldn't re-allocate memory
:
sed --unbuffered ':a;N;$!ba;s/>\n/>/g'
Vì vậy, có phương pháp nào khác mà không dùng đến C? Tôi ghét perl, nhưng sẵn sàng tạo một ngoại lệ trong trường hợp này :-)
Tôi không biết chắc chắn về bất kỳ ký tự nào không xảy ra trong dữ liệu, vì vậy việc thay thế tạm thời \n
bằng một ký tự khác là điều tôi muốn tránh nếu có thể.
Bất cứ ý tưởng tốt, bất cứ ai?
--unbuffered
hết bộ nhớ
$!
làm gì?
$!
là mặc dù. Này, tôi hy vọng sẽ cần một LOT của bộ nhớ.
sed
không phải là công cụ thích hợp trong trường hợp này.
--unbuffered
?