A meno che tu non abbia GNU awk 4.1.0 o successivo ...
Non avrai un'opzione come quella di sed, -i
quindi invece:
$ awk '{print $0}' file > tmp && mv tmp file
Nota: -i
non è magico, sta anche creando un file temporaneo sed
che lo gestisce solo per te.
A partire da GNU awk 4.1.0 ...
GNU awk
aggiunta questa funzionalità nella versione 4.1.0 (rilasciata il 10/05/2013) . Non è così semplice come dare l' -i
opzione 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.awk
file 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_SUFFIX
può 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.