Если у вас нет GNU awk 4.1.0 или новее ...
У вас не будет такой опции, как опция sed, -iпоэтому вместо этого сделайте:
$ awk '{print $0}' file > tmp && mv tmp file
Примечание: -iэто не волшебство, он также создает временный файл, который sedобрабатывает его за вас.
Начиная с GNU awk 4.1.0 ...
GNU awkдобавлен этот функционал в версии 4.1.0 (выпущен 10.05.2013) . Это не так просто, как просто дать -iвозможность, как описано в выпущенных примечаниях:
Новая опция -i (от xgawk) используется для загрузки файлов библиотеки awk. Это отличается от -f тем, что первый аргумент, не являющийся параметром, рассматривается как сценарий.
Для inplace.awkправильного вызова расширения вам необходимо использовать связанный включаемый файл:
$ cat file
123 abc
456 def
789 hij
$ gawk -i inplace '{print $1}' file
$ cat file
123
456
789
Переменная INPLACE_SUFFIXможет использоваться для указания расширения для файла резервной копии:
$ gawk -i inplace -v INPLACE_SUFFIX=.bak '{print $1}' file
$ cat file
123
456
789
$ cat file.bak
123 abc
456 def
789 hij
Я счастлив , эта функция была добавлена , но для меня, реализация не очень awkish как сила исходит от лаконичности языка и -i inplace8 символов слишком долго имо .
Вот ссылка на мануал за официальным словом.