เว้นแต่คุณจะมี 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/…ได้ โปรด