A menos que tenga GNU awk 4.1.0 o posterior ...
No tendrá una opción como la -i
opción de sed, así que en su lugar:
$ awk '{print $0}' file > tmp && mv tmp file
Nota: -i
no es mágico, también está creando un archivo temporal que sed
solo lo maneja por usted.
A partir de GNU awk 4.1.0 ...
GNU awk
agregó esta funcionalidad en la versión 4.1.0 (publicada el 10/05/2013) . No es tan sencillo como dar la -i
opció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.awk
archivo 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_SUFFIX
se 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 inplace
es de 8 caracteres demasiado tiempo imo .
Aquí hay un enlace al manual para la palabra oficial.