เว้นแต่คุณจะมี GNU awk 4.1.0 หรือใหม่กว่า ...
คุณจะไม่มีตัวเลือกเช่น-iตัวเลือกของ sed ให้ทำ:
$ awk '{print $0}' file > tmp && mv tmp file
หมายเหตุ: -iไม่ใช่เวทมนตร์ แต่ยังสร้างไฟล์ชั่วคราวที่sedจัดการให้คุณ
ณ GNU awk 4.1.0 ...
GNU awkเพิ่มฟังก์ชั่นนี้ในรุ่น 4.1.0 (ปล่อย 2013/10/05) มันไม่ตรงไปข้างหน้าเหมือนการให้-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 inplaceเป็น 8 ตัวอักษรยาวเกินไปIMO
นี่คือลิงค์ไปยังคู่มือสำหรับคำทางการ
awkสามารถใช้ลิงค์ต่อไปนี้ได้เช่นกันstackoverflow.com/questions/59243104/…ได้ โปรด