A menos que tenga GNU awk 4.1.0 o posterior ...
No tendrá una opción como la -iopción de sed, así que en su lugar:
$ awk '{print $0}' file > tmp && mv tmp file
Nota: -ino es mágico, también está creando un archivo temporal que sedsolo lo maneja por usted.
A partir de GNU awk 4.1.0 ...
GNU awkagregó esta funcionalidad en la versión 4.1.0 (publicada el 10/05/2013) . No es tan sencillo como dar la -iopción como se describe en las notas publicadas:
La nueva opción -i (de xgawk) se usa para cargar archivos de biblioteca awk. Esto difiere de -f en que el primer argumento sin opción se trata como un script.
Debe utilizar el inplace.awkarchivo de inclusión incluido para invocar la extensión correctamente de la siguiente manera:
$ cat file
123 abc
456 def
789 hij
$ gawk -i inplace '{print $1}' file
$ cat file
123
456
789
La variable INPLACE_SUFFIXse puede usar para especificar la extensión de un archivo de respaldo:
$ gawk -i inplace -v INPLACE_SUFFIX=.bak '{print $1}' file
$ cat file
123
456
789
$ cat file.bak
123 abc
456 def
789 hij
Estoy feliz esta característica se ha añadido pero para mí, la implementación no es muy awkish como el poder proviene de la concisión del lenguaje y -i inplacees de 8 caracteres demasiado tiempo imo .
Aquí hay un enlace al manual para la palabra oficial.