A menos que você tenha o GNU awk 4.1.0 ou posterior ...
Você não terá essa opção como a opção sed, -i
então faça:
$ awk '{print $0}' file > tmp && mv tmp file
Nota: o -i
não é mágico, ele também está criando um arquivo temporário, sed
apenas lida com você.
A partir do GNU awk 4.1.0 ...
GNU awk
adicionou essa funcionalidade na versão 4.1.0 (lançada em 10/05/2013) . Não é tão direto como apenas dar a -i
opção conforme descrito nas notas liberadas:
A nova opção -i (do xgawk) é usada para carregar arquivos da biblioteca awk. Isso difere de -f, pois o primeiro argumento não opcional é tratado como um script.
Você precisa usar o inplace.awk
arquivo de inclusão incluído para chamar a extensão corretamente da seguinte maneira:
$ cat file
123 abc
456 def
789 hij
$ gawk -i inplace '{print $1}' file
$ cat file
123
456
789
A variável INPLACE_SUFFIX
pode ser usada para especificar a extensão para um arquivo de 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
Estou feliz esse recurso foi adicionado, mas para mim, a implementação não é muito awkish como o poder vem da concisão da linguagem e -i inplace
é de 8 caracteres muito longo imo .
Aqui está um link para o manual da palavra oficial.