Ich habe mich in sed
umgesehen Befehl zum Hinzufügen von Text in einer Datei in einer bestimmten Zeile.
Dies funktioniert, indem Text nach Zeile 1 hinzugefügt wird:
sed '1 a
Aber ich möchte es vorher hinzufügen Zeile 1. Es wäre:
sed '0 a
aber ich bekomme diesen Fehler:invalid usage of line address 0
.
Irgendwelche Vorschläge?
Akzeptierte Antwort:
Verwenden Sie sed
Einfügen (i
) Option, die den Text in die vorherige Zeile einfügt.
sed '1 i
Update des Frageautors:
Bearbeiten Sie dazu die Datei an Ort und Stelle – mit GNU sed
– Ich musste das -i
hinzufügen Möglichkeit:
sed -i '1 ianything' file
Auch Syntax
sed -i '1i text' filename
Für Nicht-GNU-sed
Sie müssen die Return-Taste direkt nach dem Backslash 1i
drücken und nach first_line_text
:
sed -i '1i
first_line_text
'
Beachten Sie auch, dass einige Nicht-GNU sed
Implementierungen (zum Beispiel die auf macOS) erfordern ein Argument für das -i
Flag (verwenden Sie -i ''
um denselben Effekt wie mit GNU sed
zu erzielen ).
Für sed
Implementierungen, die -i
nicht unterstützen überhaupt ohne diese Option ausführen, aber die Ausgabe in eine neue Datei umleiten. Ersetzen Sie dann die alte Datei durch die neu erstellte Datei.