Хтось знає про нелінійний інструмент "бінарного" пошуку / заміни рядків дещо ефективним способом пам'яті? Дивіться також це питання .
У мене є текстовий файл + 2 Гб, який я хотів би обробити аналогічно тому, як це робиться:
sed -e 's/>\n/>/g'
Це означає, що я хочу видалити всі нові рядки, що з’являються після >
, але ніде більше, щоб це виключало tr -d
.
Ця команда (що я отримала з відповіді на аналогічне запитання ) не вдається couldn't re-allocate memory
:
sed --unbuffered ':a;N;$!ba;s/>\n/>/g'
Отже, чи існують інші методи, не вдаючись до С? Я ненавиджу перл, але я хочу зробити виняток у цьому випадку :-)
Я точно не знаю жодного символу, який не виникає в даних, тому тимчасова заміна \n
іншим символом - це те, чого я хотів би уникнути, якщо це можливо.
Будь-які хороші ідеї, будь-хто?
--unbuffered
пам’яттю або без неї закінчується
$!
?
$!
це все-таки. Це Я очікую , що буде потрібно БАГАТО пам'яті.
sed
це не належний інструмент у цьому випадку.
--unbuffered
?