
Hallo, ich versuche, die Kopfzeile meiner Datei mit dem unten beschriebenen sed-Befehl zu ersetzen.
sed "1s/.*/$new_header/" Test_file.csv
Die obige Zeile ersetzt den Header und druckt in stdout. Aber wie kann ich die Ausgabe in eine neue Datei umleiten oder direkt in den Dateien ersetzen?
sed "1s/.*/$new_header/" Test_file.csv > new_file.csv
Der obige Befehl funktioniert einwandfrei, aber ich möchte zur gleichen Datei umleiten.
Antwort1
-i
Sie können ein Flag verwenden sed
, um direkt Änderungen vorzunehmen und außerdem eine Sicherungskopie zu erstellen:
sed -i.bak "1 s/.*/$new_header/" inputfile
Beachten Sie, dass die -i
Option nicht standardmäßig ist und in verschiedenen Implementierungen von unterschiedlich funktionieren kann sed
. SieheWie kann ich mit sed -i (In-Place-Bearbeitung) Portabilität erreichen?