A moins que vous n'ayez GNU awk 4.1.0 ou plus...
Vous n'aurez pas une telle option comme sed's -i
alors faites-le à la place :
$ awk '{print $0}' file > tmp && mv tmp file
Remarque : le -i
n'est pas magique, il crée aussi un fichier temporaire sed
s'en occupe pour vous.
A partir de GNU awk 4.1.0...
GNU awk
ajout de cette fonctionnalité dans la version 4.1.0 (publié le 10/05/2013) . Ce n'est pas aussi simple que de donner le nom de l'entreprise. -i
comme décrit dans les notes de mise à jour :
La nouvelle option -i (de xgawk) est utilisée pour charger les fichiers de la bibliothèque awk. Elle diffère de -f en ce sens que le premier argument sans option est traité comme un script.
Vous devez utiliser l'ensemble inplace.awk
pour invoquer l'extension correctement comme ceci :
$ cat file
123 abc
456 def
789 hij
$ gawk -i inplace '{print $1}' file
$ cat file
123
456
789
La variable INPLACE_SUFFIX
peut être utilisé pour spécifier l'extension d'un fichier de sauvegarde :
$ gawk -i inplace -v INPLACE_SUFFIX=.bak '{print $1}' file
$ cat file
123
456
789
$ cat file.bak
123 abc
456 def
789 hij
Je suis heureux que cette fonctionnalité ait été ajoutée, mais pour moi, l'implémentation n'est pas très awkish, car la puissance vient de la concision du langage et de l'utilisation de l'anglais. -i inplace
est trop long de 8 caractères i.m.o .
Voici un lien vers le manuel pour le mot officiel.