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 \nmöchte ich es nach Möglichkeit vermeiden , es vorübergehend durch ein anderes Zeichen zu ersetzen .
Irgendwelche guten Ideen?
--unbufferedSpeicherplatzmangel
$!das?
$!ist. Ich gehe davon aus, dass dies eine Menge Speicher benötigt.
sedist in diesem Fall nicht das richtige Werkzeug.
--unbuffered?