Qualcuno sa di uno strumento non basato su linea per cercare "binario" / sostituire le stringhe in modo un po 'efficiente in termini di memoria? Vedi anche questa domanda .
Ho un file di testo + 2 GB che vorrei elaborare in modo simile a quello che sembra fare:
sed -e 's/>\n/>/g'
Ciò significa che voglio rimuovere tutte le nuove righe che si verificano dopo un >
, ma non altrove, in modo da escludere tr -d
.
Questo comando (che ho ricevuto dalla risposta di una domanda simile ) fallisce con couldn't re-allocate memory
:
sed --unbuffered ':a;N;$!ba;s/>\n/>/g'
Quindi, ci sono altri metodi senza ricorrere a C? Odio il Perl, ma sono disposto a fare un'eccezione in questo caso :-)
Non sono sicuro di alcun personaggio che non si presenta nei dati, quindi la sostituzione temporanea \n
con un altro personaggio è qualcosa che vorrei evitare, se possibile.
Qualche buona idea, qualcuno?
--unbuffered
memoria
$!
?
$!
sia. Ciò che mi aspetto avrà bisogno di MOLTA memoria.
sed
non sia lo strumento giusto in questo caso.
--unbuffered
?