Kennt jemand ein nicht zeilenbasiertes Tool zum "binären" Suchen / Ersetzen von Zeichenfolgen auf etwas speichereffiziente Weise? Siehe auch diese Frage .
Ich habe eine + 2GB-Textdatei, die ich ähnlich wie diese verarbeiten möchte:
sed -e 's/>\n/>/g'
Das heißt, ich möchte alle Zeilenumbrüche entfernen, die nach einem auftreten >
, aber nirgendwo anders, damit das ausschließt tr -d
.
Dieser Befehl (den ich aus der Antwort auf eine ähnliche Frage erhalten habe ) schlägt fehl mit couldn't re-allocate memory
:
sed --unbuffered ':a;N;$!ba;s/>\n/>/g'
Gibt es also andere Methoden, ohne auf C zurückzugreifen? Ich hasse Perl, bin aber bereit, in diesem Fall eine Ausnahme zu machen :-)
Ich weiß nicht genau, welches Zeichen in den Daten nicht vorkommt, daher \n
möchte ich es nach Möglichkeit vermeiden , es vorübergehend durch ein anderes Zeichen zu ersetzen .
Irgendwelche guten Ideen?
--unbuffered
Speicherplatzmangel
$!
das?
$!
ist. Ich gehe davon aus, dass dies eine Menge Speicher benötigt.
sed
ist in diesem Fall nicht das richtige Werkzeug.
--unbuffered
?