Ich arbeite derzeit mit CSV-Dateien, die 10 GB groß sein können, und müssen die Header dynamisch je nach Anwendungsfall bearbeiten.Linux sed liest ganze Datei, wenn nur die erste Zeile bearbeitet
Dazu verwende ich:
sed -i '1,1s/id/id:ID(Person)/g' etc.
die den gewünschten Effekt hat nur die Header bearbeiten, sondern kann nach oben von 10 Sekunden in Anspruch nehmen. Ich stelle mir das vor, weil die ganze Datei immer noch gestreamt wird, aber ich kann nichts finden, um das zu verhindern.
Alle Ideen oder ein Punkt in die richtige Richtung würden sehr geschätzt werden.
Wenn es nicht die gesamte Datei umschreibt, um die Daten zu verschieben, wie wird es 11 weitere Bytes passen? Sie wollen 'ID (Person)' die nächsten 11 Bytes überschreiben? – TessellatingHeckler
@Thomas: Mein Kommentar war fehl am Platz. Entfernt das. So wird das in Kürze sein. ;) – sjsam
Dies ist E/A-gebunden. Hast du die Laufzeit mit 'cat file> file.copy' verglichen? Du wirst nicht schneller gehen können. –