Es sei denn, Sie haben GNU awk 4.1.0 oder höher ...
Sie haben keine Option wie die von sed. -i
Tun Sie stattdessen Folgendes:
$ awk '{print $0}' file > tmp && mv tmp file
Hinweis: Das -i
ist keine Zauberei, es wird auch eine temporäre Datei erstellt, die sed
nur für Sie erstellt wird.
Ab GNU awk 4.1.0 ...
GNU awk
Diese Funktionalität wurde in Version 4.1.0 (veröffentlicht am 10/05/2013) hinzugefügt . Es ist nicht so einfach, nur die -i
Option zu geben, wie in den veröffentlichten Anmerkungen beschrieben:
Die neue Option -i (von xgawk) wird zum Laden von awk-Bibliotheksdateien verwendet. Dies unterscheidet sich von -f darin, dass das erste Argument ohne Option als Skript behandelt wird.
Sie müssen die mitgelieferte inplace.awk
Include-Datei verwenden, um die Erweiterung ordnungsgemäß aufzurufen:
$ cat file
123 abc
456 def
789 hij
$ gawk -i inplace '{print $1}' file
$ cat file
123
456
789
Mit der Variablen INPLACE_SUFFIX
kann die Erweiterung für eine Sicherungsdatei angegeben werden:
$ gawk -i inplace -v INPLACE_SUFFIX=.bak '{print $1}' file
$ cat file
123
456
789
$ cat file.bak
123 abc
456 def
789 hij
Ich bin froh, dass diese Funktion hinzugefügt wurde, aber für mich ist die Implementierung nicht sehr schwierig, da die Leistung von der Prägnanz der Sprache herrührt und imo-i inplace
8 Zeichen zu lang ist .
Hier ist ein Link zum Handbuch für das offizielle Wort.