A meno che tu non abbia GNU awk 4.1.0 o successivo ...
Non avrai un'opzione come quella di sed, -iquindi invece:
$ awk '{print $0}' file > tmp && mv tmp file
Nota: -inon è magico, sta anche creando un file temporaneo sedche lo gestisce solo per te.
A partire da GNU awk 4.1.0 ...
GNU awkaggiunta questa funzionalità nella versione 4.1.0 (rilasciata il 10/05/2013) . Non è così semplice come dare l' -iopzione come descritto nelle note rilasciate:
La nuova opzione -i (da xgawk) è usata per caricare i file della libreria awk. Ciò differisce da -f in quanto il primo argomento non opzionale è trattato come uno script.
È necessario utilizzare il inplace.awkfile di inclusione in bundle per richiamare correttamente l'estensione in questo modo:
$ cat file
123 abc
456 def
789 hij
$ gawk -i inplace '{print $1}' file
$ cat file
123
456
789
La variabile INPLACE_SUFFIXpuò essere utilizzata per specificare l'estensione per un file di backup:
$ gawk -i inplace -v INPLACE_SUFFIX=.bak '{print $1}' file
$ cat file
123
456
789
$ cat file.bak
123 abc
456 def
789 hij
Sono felice questa funzione è stata aggiunta, ma per me, l'attuazione non è molto awkish come il potere viene dalla concisione della lingua e -i inplaceè di 8 caratteri troppo lungo imo .
Ecco un link al manuale per la parola ufficiale.