Effizienter Weg, um fügen Sie zwei Zeilen am Anfang eine sehr große Datei

Habe ich eine Gruppe von sehr groß (ein paar GB pro) text-Dateien. Ich muss hinzufügen von zwei Zeilen am Anfang von jeder dieser Dateien.

Ich habe versucht, mit sed mit dem folgenden Befehl

sed -i '1iFirstLine'
sed -i '2iSecondLine'

Das problem mit der sed ist, dass es eine Schleife durch die gesamte Datei, auch wenn Sie hatte, um nur zwei Zeilen am Anfang und deshalb dauert es viel Zeit.

Gibt es eine andere Möglichkeit dies zu tun, effizienter zu Lesen, ohne die gesamte Datei?

  • Haben Sie Lesen die Frage? 🙂
  • Es ist eine wunderbare Erklärung hier http://backreference.org/2011/01/29/in-place-editing-of-files/ auch die Beschreibung von möglichen Tücken des PEARL Ansatz.
  • Dein sed Befehl würde schneller sein wenn Sie nicht: sed -i -e '1iFirstLine' -e '2iSecondLine' -e '3q'.
  • dies wird nur print 3 Zeilen in der Datei. Die restlichen Zeilen werden nicht ausgedruckt.
  • Du hast Recht, mein test war fehlerhaft.
  • Aber ohne die Letzte -e3q das ist so gut wie die anderen fixes. (Die zweite Zeile sollte auch eingefügt werden, bei Zeile 1, aber.)
  • unix.stackexchange.com/questions/87772/...

InformationsquelleAutor Sudar | 2012-09-11
Schreibe einen Kommentar