Kecuali Anda memiliki GNU awk 4.1.0 atau yang lebih baru ...
Anda tidak akan memiliki opsi seperti opsi sed, -i
melainkan lakukan:
$ awk '{print $0}' file > tmp && mv tmp file
Catatan: -i
ini bukan sihir, itu juga membuat file sementara sed
hanya menanganinya untuk Anda.
Pada GNU awk 4.1.0 ...
GNU awk
menambahkan fungsionalitas ini dalam versi 4.1.0 (dirilis 10/05/2013) . Ini tidak lurus ke depan seperti hanya memberikan -i
opsi seperti yang dijelaskan dalam catatan yang dirilis:
Opsi -i baru (dari xgawk) digunakan untuk memuat file perpustakaan awk. Ini berbeda dari -f di mana argumen non-opsi pertama diperlakukan sebagai skrip.
Anda harus menggunakan inplace.awk
file include yang dibundel untuk menjalankan ekstensi dengan benar seperti:
$ cat file
123 abc
456 def
789 hij
$ gawk -i inplace '{print $1}' file
$ cat file
123
456
789
Variabel INPLACE_SUFFIX
dapat digunakan untuk menentukan ekstensi untuk file cadangan:
$ gawk -i inplace -v INPLACE_SUFFIX=.bak '{print $1}' file
$ cat file
123
456
789
$ cat file.bak
123 abc
456 def
789 hij
Saya senang fitur ini telah ditambahkan tetapi bagi saya, pelaksanaannya sangat tidak awkish sebagai kekuatan berasal dari keringkasan bahasa dan -i inplace
adalah 8 karakter terlalu lama imo .
Ini adalah tautan ke manual untuk kata resmi.