ภาษาอังกฤษภาษาฝรั่งเศสสเปน

Ad


ไอคอน Fav ของ OnWorks

gawk - ออนไลน์ในคลาวด์

เรียกใช้การเพ่งมองในผู้ให้บริการโฮสต์ฟรีของ OnWorks ผ่าน Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS

นี่คือการเพ่งมองคำสั่งที่สามารถเรียกใช้ในผู้ให้บริการโฮสต์ฟรีของ OnWorks โดยใช้เวิร์กสเตชันออนไลน์ฟรีของเรา เช่น Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS

โครงการ:

ชื่อ


เพ่งพิศ - การสแกนรูปแบบและภาษาการประมวลผล

เรื่องย่อ


เพ่งพิศ [ ตัวเลือกรูปแบบ POSIX หรือ GNU ] -f โปรแกรมไฟล์ [ -- ] ไฟล์ ...
เพ่งพิศ [ ตัวเลือกรูปแบบ POSIX หรือ GNU ] [ -- ] โปรแกรมข้อความ ไฟล์ ...

DESCRIPTION


ตะลึง คือการนำภาษาโปรแกรม AWK ไปใช้ของโครงการ GNU มันสอดคล้องกับ
คำจำกัดความของภาษาในมาตรฐาน POSIX 1003.1 รุ่นนี้ในทางกลับกันคือ
ตามคำอธิบายใน พื้นที่ AWK การเขียนโปรแกรม ภาษา, โดย Aho, Kernighan และ
ไวน์เบอร์เกอร์ ตะลึง ให้คุณสมบัติเพิ่มเติมที่พบในเวอร์ชันปัจจุบันของ Brian
เคอร์นิแกนส์ awk และส่วนขยายเฉพาะของ GNU จำนวนหนึ่ง

บรรทัดคำสั่งประกอบด้วยตัวเลือกเพื่อ เพ่งพิศ ตัวเอง ข้อความโปรแกรม AWK (ถ้าไม่ได้ให้มา
เมื่อ -f or --ไฟล์ ตัวเลือก) และค่าที่จะจัดให้มีใน อาร์จีซี และ อาร์จีวี ก่อน
กำหนดตัวแปร AWK

เมื่อ เพ่งพิศ ถูกเรียกด้วย --ข้อมูลส่วนตัว ตัวเลือกมันเริ่มรวบรวมสถิติการทำโปรไฟล์
จากการทำงานของโปรแกรม ตะลึง ทำงานช้าลงในโหมดนี้และโดยอัตโนมัติ
สร้างโปรไฟล์การดำเนินการในไฟล์ awkprof.out เมื่อทำเสร็จแล้ว. ดู --ข้อมูลส่วนตัว
ตัวเลือกด้านล่าง

ตะลึง มีดีบักเกอร์ในตัวด้วย เซสชันการดีบักแบบโต้ตอบสามารถเริ่มต้นได้โดย
การจัดหา --debug ตัวเลือกไปยังบรรทัดคำสั่ง ในโหมดการดำเนินการนี้ เพ่งพิศ โหลด
ซอร์สโค้ด AWK และจากนั้นจะแจ้งคำสั่งการดีบัก ตะลึง สามารถดีบัก AWK . เท่านั้น
แหล่งที่มาของโปรแกรมที่มาพร้อมกับ -f ตัวเลือก. ดีบักเกอร์ได้รับการบันทึกไว้ใน อ้าปากค้าง: มีประสิทธิภาพ
AWK การเขียนโปรแกรม.

ทางเลือกที่ FORMAT


ตะลึง ตัวเลือกอาจเป็นตัวเลือกตัวอักษรเดียวแบบ POSIX แบบดั้งเดิมหรือแบบยาว GNU
ตัวเลือก. ตัวเลือก POSIX เริ่มต้นด้วย “-” ตัวเดียว ในขณะที่ตัวเลือกแบบยาวเริ่มต้นด้วย “--” ยาว
มีตัวเลือกสำหรับทั้งคุณลักษณะเฉพาะของ GNU และสำหรับคุณลักษณะที่ได้รับคำสั่งจาก POSIX

ตะลึง- ตัวเลือกเฉพาะมักใช้ในรูปแบบตัวเลือกยาว อาร์กิวเมนต์ตัวเลือกยาว
จะเข้าร่วมด้วยตัวเลือกโดย an = ป้ายห้ามมีช่องว่างหรืออาจเป็น
ระบุไว้ในอาร์กิวเมนต์บรรทัดคำสั่งถัดไป ตัวเลือกแบบยาวอาจใช้ตัวย่อได้ตราบเท่าที่
ตัวย่อยังคงไม่ซ้ำกัน

นอกจากนี้ ทุกตัวเลือกยาวมีตัวเลือกสั้นที่เกี่ยวข้อง ดังนั้นตัวเลือกของ
ใช้งานได้จากภายใน #! สคริปต์ปฏิบัติการ

OPTIONS


ตะลึง ยอมรับตัวเลือกต่อไปนี้ ตัวเลือกมาตรฐานจะแสดงก่อน ตามด้วย
ตัวเลือกสำหรับ เพ่งพิศ ส่วนขยาย เรียงตามตัวอักษรตามตัวเลือกสั้นๆ

-f โปรแกรมไฟล์
--ไฟล์ โปรแกรมไฟล์
อ่านแหล่งที่มาของโปรแกรม AWK จากไฟล์ โปรแกรมไฟล์, แทนที่จะเป็นตั้งแต่แรก
อาร์กิวเมนต์บรรทัดคำสั่ง หลายรายการ -f (หรือ --ไฟล์) อาจใช้ตัวเลือก

-F fs
--field-คั่น fs
ใช้ fs สำหรับตัวคั่นฟิลด์อินพุต (ค่าของ FS ตัวแปรที่กำหนดไว้ล่วงหน้า)

-v คือ=คลื่น
--กำหนด คือ=คลื่น
กำหนดมูลค่า คลื่น สู่ตัวแปร คือก่อนเริ่มการทำงานของโปรแกรม
ค่าตัวแปรดังกล่าวมีให้สำหรับ เริ่ม กฎของโปรแกรม AWK

-b
--ตัวอักษรเป็นไบต์
ถือว่าข้อมูลที่ป้อนทั้งหมดเป็นอักขระแบบไบต์เดี่ยว กล่าวอีกนัยหนึ่งไม่จ่ายใด ๆ
ให้ความสนใจกับข้อมูลสถานที่เมื่อพยายามประมวลผลสตริงเป็น multibyte
อักขระ --posix ตัวเลือกแทนที่อันนี้

-c
--แบบดั้งเดิม
วิ่งเข้า ความเข้ากันได้ โหมด. ในโหมดความเข้ากันได้ เพ่งพิศ ประพฤติเหมือนกันกับ
ของ Brian Kernighan awk; ไม่รู้จักส่วนขยายเฉพาะของ GNU ดู GNU
ส่วนขยายด้านล่างสำหรับข้อมูลเพิ่มเติม

-C
--ลิขสิทธิ์
พิมพ์ข้อความข้อมูลลิขสิทธิ์ GNU เวอร์ชันสั้นบนมาตรฐาน
ออกและออกได้สำเร็จ

-d[ไฟล์]
--dump-ตัวแปร[=ไฟล์]
พิมพ์รายการเรียงลำดับของตัวแปรส่วนกลาง ประเภท และค่าสุดท้ายไปที่ ไฟล์. ถ้า
ไม่ ไฟล์ มีให้ เพ่งพิศ ใช้ไฟล์ชื่อ awkvars.out ในไดเร็กทอรีปัจจุบัน
การมีรายการตัวแปรส่วนกลางทั้งหมดเป็นวิธีที่ดีในการค้นหา typographical
ข้อผิดพลาดในโปรแกรมของคุณ คุณจะใช้ตัวเลือกนี้ด้วยถ้าคุณมีขนาดใหญ่
โปรแกรมที่มีฟังก์ชันมากมาย และคุณต้องการให้แน่ใจว่าฟังก์ชันของคุณไม่
ใช้ตัวแปรส่วนกลางที่คุณตั้งใจให้เป็นท้องถิ่นโดยไม่ได้ตั้งใจ (มันคือ
ข้อผิดพลาดง่าย ๆ โดยเฉพาะกับชื่อตัวแปรง่าย ๆ เช่น i, jและอื่น ๆ )

-D[ไฟล์]
--debug[=ไฟล์]
เปิดใช้งานการดีบักของโปรแกรม AWK โดยค่าเริ่มต้น ดีบักเกอร์จะอ่านคำสั่ง
โต้ตอบจากแป้นพิมพ์ (อินพุตมาตรฐาน) ตัวเลือก ไฟล์ อาร์กิวเมนต์
ระบุไฟล์ที่มีรายการคำสั่งสำหรับโปรแกรมดีบั๊กเพื่อดำเนินการที่ไม่ใช่
โต้ตอบ

-e โปรแกรมข้อความ
--แหล่งที่มา โปรแกรมข้อความ
ใช้ โปรแกรมข้อความ เป็นซอร์สโค้ดของโปรแกรม AWK ตัวเลือกนี้ช่วยให้ง่าย
การผสมผสานของฟังก์ชั่นห้องสมุด (ใช้ผ่าน the -f และ --ไฟล์ ตัวเลือก) กับแหล่งที่มา
รหัสที่ป้อนในบรรทัดคำสั่ง มีไว้สำหรับ AWK . ขนาดกลางถึงใหญ่เป็นหลัก
โปรแกรมที่ใช้ในเชลล์สคริปต์

-E ไฟล์
--ผู้บริหาร ไฟล์
คล้ายกับ -fอย่างไรก็ตาม นี่เป็นตัวเลือกสุดท้ายที่ประมวลผล นี้ควรจะ
ใช้กับ #! สคริปต์ โดยเฉพาะอย่างยิ่งสำหรับแอปพลิเคชัน CGI เพื่อหลีกเลี่ยงการส่งผ่านใน
ตัวเลือกหรือซอร์สโค้ด (!) บนบรรทัดคำสั่งจาก URL ตัวเลือกนี้ปิดใช้งาน
การกำหนดตัวแปรบรรทัดคำสั่ง

-g
--gen-หม้อ
สแกนและแยกวิเคราะห์โปรแกรม AWK และสร้าง GNU .หม้อ (เทมเพลตออบเจ็กต์แบบพกพา)
ฟอร์แมตไฟล์บนเอาต์พุตมาตรฐานพร้อมรายการสำหรับสตริงที่แปลได้ทั้งหมดในไฟล์
โปรแกรม. ตัวโปรแกรมเองไม่ได้ถูกดำเนินการ ดู GNU gettext จัดจำหน่ายสำหรับ
ข้อมูลเพิ่มเติมเกี่ยวกับ .หม้อ ไฟล์

-h
--ช่วยด้วย พิมพ์ข้อมูลสรุปสั้นๆ เกี่ยวกับตัวเลือกที่มีในเอาต์พุตมาตรฐาน
(ต่อ GNU การเข้ารหัส มาตรฐาน, ตัวเลือกเหล่านี้จะทำให้เกิดการออกโดยทันทีและสำเร็จ)

-i รวมไฟล์
--รวม รวมไฟล์
โหลดไลบรารีซอร์ส awk ค้นหาห้องสมุดโดยใช้ อั๊กพัทธ์
ตัวแปรสภาพแวดล้อม หากการค้นหาครั้งแรกล้มเหลว จะพยายามอีกครั้ง
หลังจากต่อท้าย .awk คำต่อท้าย ไฟล์จะถูกโหลดเพียงครั้งเดียว (เช่น
รายการที่ซ้ำกันจะถูกกำจัด) และรหัสไม่ถือเป็นโปรแกรมหลัก
แหล่ง

-l lib
--โหลด lib
โหลดไลบรารีที่ใช้ร่วมกัน lib. ค้นหาห้องสมุดโดยใช้ อวกลิบพาธ
ตัวแปรสภาพแวดล้อม หากการค้นหาครั้งแรกล้มเหลว จะพยายามอีกครั้ง
หลังจากต่อท้ายส่วนต่อท้ายไลบรารีที่ใช้ร่วมกันเริ่มต้นสำหรับแพลตฟอร์ม ห้องสมุด
รูทีนการเริ่มต้นคาดว่าจะตั้งชื่อ dl_load().

-L [ความคุ้มค่า]
--ผ้าสำลี[=ความคุ้มค่า]
ให้คำเตือนเกี่ยวกับโครงสร้างที่น่าสงสัยหรือไม่สามารถพกพาได้สำหรับ AWK . อื่น
การใช้งาน ด้วยอาร์กิวเมนต์ทางเลือกของ ร้ายแรง, คำเตือนผ้าสำลีกลายเป็นอันตรายถึงชีวิต
ข้อผิดพลาด มันอาจจะรุนแรง แต่การใช้งานจะส่งเสริมการพัฒนาอย่างแน่นอน
ของโปรแกรม AWK ที่สะอาดขึ้น ด้วยอาร์กิวเมนต์ทางเลือกของ โมฆะ, เฉพาะคำเตือนเกี่ยวกับ
สิ่งที่ไม่ถูกต้องจริงจะออก (นี้ยังไม่ได้ดำเนินการอย่างเต็มที่)

-M
--บิ๊กนัม
บังคับเลขคณิตความแม่นยำตามอำเภอใจกับตัวเลข ตัวเลือกนี้ไม่มีผลถ้า เพ่งพิศ
ไม่ได้ถูกคอมไพล์เพื่อใช้ไลบรารี GNU MPFR และ MP

-n
--ไม่ใช่ข้อมูลทศนิยม
รับรู้ค่าฐานแปดและฐานสิบหกในข้อมูลที่ป้อน ใช้ นี้ ตัวเลือก กับ ยิ่งใหญ่
ระวัง!

-N
--use-lc-ตัวเลข
กองกำลังนี้ เพ่งพิศ เพื่อใช้อักขระจุดทศนิยมของโลแคลเมื่อแยกวิเคราะห์อินพุต
ข้อมูล. แม้ว่ามาตรฐาน POSIX จะต้องการพฤติกรรมนี้และ เพ่งพิศ ทำเช่นนั้นเมื่อ
--posix มีผลบังคับใช้ ค่าเริ่มต้นคือการปฏิบัติตามพฤติกรรมดั้งเดิม และใช้ a
ระยะเวลาเป็นจุดทศนิยมแม้ในท้องที่ที่จุดทศนิยมไม่เป็นทศนิยม
อักขระจุด ตัวเลือกนี้จะแทนที่การทำงานเริ่มต้นโดยไม่มีตัวเต็ม
ความเข้มงวดของ --posix ตัวเลือก

-o[ไฟล์]
--สวย-พิมพ์[=ไฟล์]
ส่งออกโปรแกรมที่พิมพ์ออกมาสวย ๆ ไปที่ ไฟล์. ถ้าไม่ ไฟล์ มีให้
เพ่งพิศ ใช้ไฟล์ชื่อ awkprof.out ในไดเร็กทอรีปัจจุบัน

-O
--เพิ่มประสิทธิภาพ
เปิดใช้งานการปรับให้เหมาะสมตามการนำเสนอภายในของโปรแกรม ปัจจุบัน,
ซึ่งรวมถึงการพับคงที่อย่างง่าย และการกำจัดการเรียกส่วนท้ายสำหรับการเรียกซ้ำ
ฟังก์ชั่น. เพ่งพิศ ผู้ดูแลหวังว่าจะเพิ่มการเพิ่มประสิทธิภาพเพิ่มเติมเมื่อเวลาผ่านไป

-p[แฟ้มประวัติ]
--ข้อมูลส่วนตัว[=แฟ้มประวัติ]
เริ่มเซสชันการทำโปรไฟล์และส่งข้อมูลการทำโปรไฟล์ไปที่ แฟ้มประวัติ. ค่าเริ่มต้น
is awkprof.out. โปรไฟล์ประกอบด้วยจำนวนการดำเนินการของแต่ละคำสั่งใน
โปรแกรมในขอบด้านซ้ายและการเรียกใช้ฟังก์ชันจะนับสำหรับแต่ละฟังก์ชันที่ผู้ใช้กำหนด

-P
--posix
นี้เปิดขึ้น ความเข้ากันได้ โหมด โดยมีข้อจำกัดเพิ่มเติมดังต่อไปนี้:

· \x ไม่รู้จักลำดับการหลบหนี

· เฉพาะช่องว่างและแท็บเท่านั้นที่ทำหน้าที่เป็นตัวคั่นฟิลด์เมื่อ FS ถูกกำหนดให้เป็นช่องว่างเดียว
ขึ้นบรรทัดใหม่ไม่ได้

·คุณไม่สามารถต่อสายหลังจาก ? และ :.

·คำพ้องความหมาย ฟังก์ชั่น สำหรับคีย์เวิร์ด ฟังก์ชัน ไม่เป็นที่รู้จัก

· ตัวดำเนินการ ** และ - ใช้แทน .ไม่ได้ ^ และ ^=.

-r
--re-ช่วงเวลา
เปิดใช้งานการใช้ ระยะห่าง การแสดงออก ในการจับคู่นิพจน์ทั่วไป (ดู ปกติ
การแสดงออก, ด้านล่าง). นิพจน์ช่วงเวลาไม่สามารถใช้ได้ใน
ภาษา AWK มาตรฐาน POSIX ได้เพิ่มเข้าไป เพื่อทำให้ awk และ นกกระยาง สอดคล้องกับ
กันและกัน. พวกมันถูกเปิดใช้งานโดยค่าเริ่มต้น แต่ตัวเลือกนี้ยังคงใช้งานได้กับ
--แบบดั้งเดิม.

-S
--แซนด์บ็อกซ์
วิ่ง เพ่งพิศ ในโหมดแซนด์บ็อกซ์ ปิดการใช้งาน ระบบ() ฟังก์ชัน เปลี่ยนเส้นทางอินพุตด้วย
รับสาย, การเปลี่ยนเส้นทางเอาต์พุตด้วย พิมพ์ และ printfและกำลังโหลดส่วนขยายแบบไดนามิก
การดำเนินการคำสั่ง (ผ่านไปป์ไลน์) ก็ถูกปิดใช้งานเช่นกัน สิ่งนี้บล็อก a . ได้อย่างมีประสิทธิภาพ
สคริปต์จากการเข้าถึงทรัพยากรในเครื่อง (ยกเว้นไฟล์ที่ระบุใน
บรรทัดคำสั่ง).

-t
--lint-เก่า
ให้คำเตือนเกี่ยวกับโครงสร้างที่ไม่สามารถเคลื่อนย้ายไปยังเวอร์ชันดั้งเดิมของ
ยูนิกซ์ awk.

-V
--รุ่น
พิมพ์ข้อมูลเวอร์ชันสำหรับสำเนานี้โดยเฉพาะ เพ่งพิศ บนเอาต์พุตมาตรฐาน
สิ่งนี้มีประโยชน์เป็นหลักสำหรับการรู้ว่าสำเนาปัจจุบันของ เพ่งพิศ ในระบบของคุณขึ้น
ถึงวันที่เกี่ยวกับสิ่งที่มูลนิธิซอฟต์แวร์เสรีกำลังแจกจ่าย
สิ่งนี้ยังมีประโยชน์เมื่อรายงานจุดบกพร่อง (ต่อ GNU การเข้ารหัส มาตรฐานเหล่านี้
ตัวเลือกทำให้เกิดการออกทันทีและประสบความสำเร็จ)

-- ส่งสัญญาณสิ้นสุดตัวเลือก สิ่งนี้มีประโยชน์ในการอนุญาตให้มีการโต้แย้งเพิ่มเติมกับ AWK
โปรแกรมให้ขึ้นต้นด้วย "-" สิ่งนี้ให้ความสอดคล้องกับอาร์กิวเมนต์
แบบแผนการแยกวิเคราะห์ที่ใช้โดยโปรแกรม POSIX อื่น ๆ ส่วนใหญ่

ในโหมดความเข้ากันได้ ตัวเลือกอื่นๆ จะถูกตั้งค่าสถานะว่าไม่ถูกต้อง แต่จะไม่เป็นเช่นนั้น
ละเลย ในการใช้งานตามปกติ ตราบใดที่ระบุข้อความของโปรแกรมไว้ ตัวเลือกที่ไม่รู้จัก
จะถูกส่งต่อไปยังโปรแกรม AWK ใน อาร์จีวี อาร์เรย์สำหรับการประมวลผล โดยเฉพาะอย่างยิ่ง
มีประโยชน์สำหรับการรันโปรแกรม AWK ผ่าน “#!” กลไกล่ามที่ปฏิบัติการได้

สำหรับความเข้ากันได้ของ POSIX, the -W อาจใช้ตัวเลือกตามด้วยชื่อของตัวเลือกแบบยาว

AWK โปรแกรม การดำเนินการ


โปรแกรม AWK ประกอบด้วยลำดับของคำสั่งรูปแบบการดำเนินการและฟังก์ชันทางเลือก
คำจำกัดความ

@รวม "ชื่อไฟล์"
@โหลด "ชื่อไฟล์"
Belt hold { การกระทำ งบ }
ฟังก์ชัน ชื่อ(พารามิเตอร์ รายการ) { งบ }

ตะลึง ก่อนอ่านแหล่งที่มาของโปรแกรมจาก โปรแกรมไฟล์(s) ถ้าระบุไว้จากอาร์กิวเมนต์
ไปยัง --แหล่งที่มาหรือจากอาร์กิวเมนต์ที่ไม่ใช่ตัวเลือกแรกบนบรรทัดคำสั่ง ดิ -f และ
--แหล่งที่มา สามารถใช้ตัวเลือกได้หลายครั้งในบรรทัดคำสั่ง ตะลึง อ่านโปรแกรม
ข้อความราวกับว่าทั้งหมด โปรแกรมไฟล์s และข้อความต้นทางบรรทัดคำสั่งได้รับการต่อกัน
ด้วยกัน. ซึ่งมีประโยชน์สำหรับการสร้างไลบรารีของฟังก์ชัน AWK โดยไม่ต้อง
รวมไว้ในโปรแกรม AWK ใหม่แต่ละโปรแกรมที่ใช้ นอกจากนี้ยังให้ความสามารถในการผสม
ฟังก์ชันไลบรารีพร้อมโปรแกรมบรรทัดคำสั่ง

นอกจากนี้ บรรทัดที่ขึ้นต้นด้วย @รวม อาจใช้เพื่อรวมไฟล์ต้นฉบับอื่น ๆ เข้าใน
โปรแกรมของคุณ ทำให้การใช้ห้องสมุดง่ายยิ่งขึ้น ซึ่งเทียบเท่ากับการใช้ -i ตัวเลือก

บรรทัดที่ขึ้นต้นด้วย @โหลด อาจใช้เพื่อโหลดไลบรารีที่แชร์ลงในโปรแกรมของคุณ นี้
เทียบเท่ากับการใช้ -l ตัวเลือก

ตัวแปรสภาพแวดล้อม อั๊กพัทธ์ ระบุเส้นทางการค้นหาที่จะใช้เมื่อค้นหาไฟล์ต้นฉบับ
ตั้งชื่อด้วย -f และ -i ตัวเลือก. หากไม่มีตัวแปรนี้ เส้นทางเริ่มต้นคือ
".:/usr/local/share/awk". (ไดเร็กทอรีจริงอาจแตกต่างกันไปขึ้นอยู่กับวิธี เพ่งพิศ คือ
สร้างและติดตั้ง) หากชื่อไฟล์กำหนดให้ -f ตัวเลือกประกอบด้วยอักขระ "/" ไม่ใช่
ดำเนินการค้นหาเส้นทาง

ตัวแปรสภาพแวดล้อม อวกลิบพาธ ระบุเส้นทางการค้นหาที่จะใช้เมื่อค้นหาแหล่งที่มา
ไฟล์ที่ตั้งชื่อด้วย the -l ตัวเลือก. หากไม่มีตัวแปรนี้ เส้นทางเริ่มต้นคือ
"/usr/local/lib/gawk". (ไดเร็กทอรีจริงอาจแตกต่างกันไปขึ้นอยู่กับวิธี เพ่งพิศ ถูกสร้างขึ้น
และติดตั้ง)

ตะลึง รันโปรแกรม AWK ตามลำดับต่อไปนี้ ขั้นแรก การกำหนดตัวแปรทั้งหมด
ระบุผ่าน the -v ดำเนินการตัวเลือก ถัดไป, เพ่งพิศ คอมไพล์โปรแกรมเป็น an
แบบฟอร์มภายใน แล้ว, เพ่งพิศ รันโค้ดใน เริ่ม กฎ (ถ้ามี) แล้ว
ดำเนินการอ่านแต่ละไฟล์ที่มีชื่อใน อาร์จีวี อาร์เรย์ (สูงถึง อาร์จีวี[อาร์จีซี]). ถ้าไม่มี
ไฟล์ชื่อบนบรรทัดคำสั่ง เพ่งพิศ อ่านอินพุตมาตรฐาน

หากชื่อไฟล์ในบรรทัดคำสั่งมีรูปแบบ คือ=คลื่น จะถือว่าเป็นตัวแปร
งานที่มอบหมาย. ตัวแปร คือ จะได้รับการกำหนดค่า คลื่น. (สิ่งนี้เกิดขึ้นหลังจากใด ๆ
เริ่ม มีการเรียกใช้กฎ) การกำหนดตัวแปรบรรทัดคำสั่งมีประโยชน์มากที่สุดสำหรับ
การกำหนดค่าแบบไดนามิกให้กับตัวแปรที่ AWK ใช้เพื่อควบคุมวิธีที่อินพุตถูกแบ่งออกเป็น
เขตข้อมูลและระเบียน นอกจากนี้ยังมีประโยชน์สำหรับการควบคุมสถานะหากจำเป็นต้องผ่านหลายครั้ง
บนไฟล์ข้อมูลเดียว

ถ้าค่าขององค์ประกอบเฉพาะของ อาร์จีวี มันว่างเปล่า (""), เพ่งพิศ ข้ามไป

สำหรับแต่ละไฟล์อินพุต ถ้า a เริ่มต้น กฎมีอยู่ เพ่งพิศ รันโค้ดที่เกี่ยวข้องก่อน
การประมวลผลเนื้อหาของไฟล์ ในทำนองเดียวกัน เพ่งพิศ รันโค้ดที่เกี่ยวข้องกับ
สิ้นสุด หลังจากประมวลผลไฟล์.

สำหรับแต่ละเร็กคอร์ดในการป้อนข้อมูล เพ่งพิศ ทดสอบว่าตรงกันหรือไม่ Belt hold ใน AWK
โปรแกรม. สำหรับแต่ละรูปแบบที่บันทึกตรงกัน เพ่งพิศ ดำเนินการที่เกี่ยวข้อง การกระทำ.
รูปแบบจะได้รับการทดสอบตามลำดับที่เกิดขึ้นในโปรแกรม

ในที่สุด หลังจากที่อินพุทหมด เพ่งพิศ รันโค้ดใน END กฎ (ถ้า
ใด ๆ).

คำสั่ง Line ไดเรกทอรี
ตาม POSIX ไฟล์ที่มีชื่อบน awk บรรทัดคำสั่งต้องเป็นไฟล์ข้อความ พฤติกรรม
คือ ``ไม่ได้กำหนด'' หากไม่ใช่ เวอร์ชันส่วนใหญ่ของ awk ปฏิบัติต่อไดเร็กทอรีตามคำสั่ง
บรรทัดเป็นข้อผิดพลาดร้ายแรง

เริ่มต้นด้วยเวอร์ชัน 4.0 ของ เพ่งพิศไดเร็กทอรีบนบรรทัดคำสั่งจะสร้างคำเตือน แต่
จะถูกข้ามไป ถ้าอย่างใดอย่างหนึ่งของ --posix or --แบบดั้งเดิม มีตัวเลือกให้ แล้ว
เพ่งพิศ เปลี่ยนกลับเป็นการรักษาไดเร็กทอรีบนบรรทัดคำสั่งว่าเป็นข้อผิดพลาดร้ายแรง

ตัวแปร บันทึก AND FIELDS


ตัวแปร AWK เป็นไดนามิก เกิดขึ้นเมื่อมีการใช้ครั้งแรก ของพวกเขา
ค่าเป็นตัวเลขทศนิยมหรือสตริง หรือทั้งสองอย่าง ขึ้นอยู่กับว่าเป็นอย่างไร
ใช้แล้ว. AWK ยังมีอาร์เรย์หนึ่งมิติ อาร์เรย์ที่มีหลายมิติอาจเป็น
จำลอง ตะลึง จัดเตรียมอาร์เรย์ที่แท้จริงของอาร์เรย์ ดู อาร์เรย์, ด้านล่าง. ที่กำหนดไว้ล่วงหน้าหลายรายการ
ตัวแปรถูกตั้งค่าให้โปรแกรมทำงาน มีการอธิบายตามความจำเป็นและสรุปไว้ด้านล่าง

ประวัติ
โดยปกติ ระเบียนจะถูกคั่นด้วยอักขระขึ้นบรรทัดใหม่ คุณสามารถควบคุมได้ว่าบันทึกเป็นอย่างไร
แยกจากกันโดยกำหนดค่าให้กับตัวแปรบิวท์อิน RS. ถ้า RS เป็นอักขระตัวใดตัวหนึ่ง
ตัวละครนั้นแยกบันทึก มิฉะนั้น, RS เป็นนิพจน์ทั่วไป ข้อความใน
อินพุตที่ตรงกับนิพจน์ทั่วไปนี้จะแยกระเบียนออกจากกัน อย่างไรก็ตาม ใน
โหมดความเข้ากันได้ เฉพาะอักขระตัวแรกของค่าสตริงเท่านั้นที่ใช้สำหรับการแยก
บันทึก ถ้า RS ถูกตั้งค่าเป็นสตริงว่าง จากนั้นบันทึกจะถูกคั่นด้วยบรรทัดว่าง
เมื่อ RS ถูกตั้งค่าเป็นสตริงว่าง อักขระขึ้นบรรทัดใหม่ทำหน้าที่เป็นตัวคั่นฟิลด์เสมอ
นอกเหนือจากค่าใด ๆ FS อาจจะมี.

สาขา
เมื่ออ่านบันทึกอินพุตแต่ละรายการแล้ว เพ่งพิศ แบ่งบันทึกเป็น ทุ่งโดยใช้ค่าของ
FS ตัวแปรเป็นตัวคั่นฟิลด์ ถ้า FS เป็นอักขระตัวเดียว ฟิลด์คั่นด้วย
ตัวละครตัวนั้น ถ้า FS เป็นสตริงว่าง จากนั้นอักขระแต่ละตัวจะกลายเป็น a
แยกสนาม. มิฉะนั้น, FS คาดว่าจะเป็นนิพจน์ทั่วไปแบบเต็ม ใน
กรณีพิเศษที่ FS เป็นช่องว่างเดียว เขตข้อมูลถูกคั่นด้วยการเว้นวรรคและ/หรือแท็บ
และ/หรือขึ้นบรรทัดใหม่ (แต่ดูหมวด POSIX ความเข้ากันได้ด้านล่าง) หมายเหตุ: คุณค่าของ
ละเว้น (ดูด้านล่าง) ยังส่งผลต่อการแบ่งเขตข้อมูลเมื่อ FS เป็นนิพจน์ทั่วไป
และบันทึกแยกอย่างไรเมื่อ RS เป็นนิพจน์ทั่วไป

ถ้า สนาม ตัวแปรถูกกำหนดเป็นรายการตัวเลขคั่นช่องว่างแต่ละฟิลด์เป็น
คาดว่าจะมีความกว้างคงที่และ เพ่งพิศ แยกระเบียนโดยใช้ความกว้างที่ระบุ
คุณค่าของ FS ถูกละเลย กำหนดค่าใหม่ให้กับ FS or ป.ป.ช แทนที่การใช้
สนาม.

ในทำนองเดียวกัน ถ้า ป.ป.ช ตัวแปรถูกกำหนดเป็นสตริงที่แสดงถึงนิพจน์ทั่วไป แต่ละ
เขตข้อมูลประกอบด้วยข้อความที่ตรงกับนิพจน์ทั่วไปนั้น ในกรณีนี้ ค่าปกติ
นิพจน์อธิบายเขตข้อมูลเอง แทนที่จะเป็นข้อความที่แยกเขตข้อมูล
กำหนดค่าใหม่ให้กับ FS or สนาม แทนที่การใช้ ป.ป.ช.

แต่ละฟิลด์ในบันทึกอินพุตอาจถูกอ้างอิงตามตำแหน่ง: $1, $2, และอื่น ๆ $0
เป็นบันทึกทั้งหมด ฟิลด์ไม่จำเป็นต้องอ้างอิงด้วยค่าคงที่:

n = 5
พิมพ์ $n

พิมพ์ฟิลด์ที่ห้าในบันทึกอินพุต

ตัวแปร NF ถูกกำหนดเป็นจำนวนฟิลด์ทั้งหมดในบันทึกอินพุต

การอ้างอิงถึงฟิลด์ที่ไม่มีอยู่ (เช่น ฟิลด์หลัง $เอ็นเอฟ) สร้างสตริงว่าง
อย่างไรก็ตาม การกำหนดให้กับฟิลด์ที่ไม่มีอยู่ (เช่น $(NF+2) = 5) เพิ่มมูลค่าของ NF,
สร้างฟิลด์ใด ๆ ที่มีสตริงว่างเป็นค่า และทำให้ค่า
of $0 ให้คำนวณใหม่โดยแยกช่องด้วยค่าของ FSO. อ้างอิง
ไปยังช่องที่มีตัวเลขติดลบทำให้เกิดข้อผิดพลาดร้ายแรง ลดลง NF ทำให้ค่าของ
ช่องที่ผ่านค่าใหม่ที่จะสูญหายและค่าของ $0 ที่จะคำนวณใหม่ด้วย
ช่องที่คั่นด้วยค่าของ FSO.

การกำหนดค่าให้กับฟิลด์ที่มีอยู่ทำให้ทั้งเร็กคอร์ดถูกสร้างขึ้นใหม่เมื่อ $0 is
อ้างอิง ในทำนองเดียวกันการกำหนดค่าให้ $0 ทำให้บันทึกถูกแบ่งสร้าง
ค่าใหม่สำหรับฟิลด์

Built-in ตัวแปร
ตะลึงตัวแปรบิวท์อินคือ:

อาร์จีซี จำนวนอาร์กิวเมนต์บรรทัดคำสั่ง (ไม่รวมตัวเลือก to เพ่งพิศหรือ
ที่มาของโปรแกรม)

อาร์จินด์ ดัชนีใน อาร์จีวี ของไฟล์ปัจจุบันที่กำลังประมวลผล

อาร์จีวี อาร์เรย์ของอาร์กิวเมนต์บรรทัดคำสั่ง อาร์เรย์ถูกสร้างดัชนีจาก 0 ถึง อาร์จีซี - 1
แบบไดนามิกเปลี่ยนเนื้อหาของ อาร์จีวี สามารถควบคุมไฟล์ที่ใช้สำหรับข้อมูล

บินโหมด บนระบบที่ไม่ใช่ POSIX ระบุการใช้โหมด “ไบนารี” สำหรับไฟล์ I/O ทั้งหมด
ค่าตัวเลข 1, 2 หรือ 3 ระบุว่าไฟล์อินพุต ไฟล์เอาต์พุต หรือทั้งหมด
ไฟล์ตามลำดับควรใช้ไบนารี I/O ค่าสตริงของ "ร",หรือ "ว"
ระบุว่าไฟล์อินพุตหรือไฟล์เอาต์พุตตามลำดับควรใช้ไบนารี
ไอ/โอ ค่าสตริงของ "รว" or "wr" ระบุว่าไฟล์ทั้งหมดควรใช้ไบนารี
ไอ/โอ ค่าสตริงอื่นๆ จะถือว่าเป็น "รว"แต่สร้างคำเตือน
ข่าวสาร

คอนวีเอฟเอ็มที รูปแบบการแปลงตัวเลข "%.6g", โดยค่าเริ่มต้น.

สิ่งแวดล้อม อาร์เรย์ที่มีค่าของสภาพแวดล้อมปัจจุบัน อาร์เรย์คือ
จัดทำดัชนีโดยตัวแปรสภาพแวดล้อมแต่ละองค์ประกอบเป็นค่าของสิ่งนั้น
ตัวแปร (เช่น สิ่งแวดล้อม["บ้าน"] อาจจะมี "/บ้าน/อาร์โนลด์"). กำลังเปลี่ยนอาร์เรย์นี้
ไม่กระทบต่อสิ่งแวดล้อมที่มองเห็นได้จากโปรแกรมที่ เพ่งพิศ วางไข่ผ่าน
การเปลี่ยนเส้นทางหรือ ระบบ() ฟังก์ชัน

เออร์โน่ หากเกิดข้อผิดพลาดของระบบให้ทำการเปลี่ยนเส้นทางสำหรับ รับสาย, ในระหว่างการอ่าน
for รับสาย, หรือระหว่าง a ปิด()แล้ว เออร์โน่ จะมีสตริงอธิบาย
ข้อผิดพลาด. ค่านี้ขึ้นอยู่กับการแปลในภาษาที่ไม่ใช่ภาษาอังกฤษ

สนาม ช่องว่างคั่นรายการความกว้างของฟิลด์ เมื่อตั้งค่าแล้ว เพ่งพิศ แยกวิเคราะห์อินพุต
ลงในช่องที่มีความกว้างคงที่ แทนที่จะใช้ค่าของ FS ตัวแปร as
ตัวคั่นฟิลด์ ดู สาขา, ข้างบน.

ชื่อไฟล์ ชื่อของไฟล์อินพุตปัจจุบัน หากไม่มีการระบุไฟล์ในคำสั่ง
เส้น ค่าของ ชื่อไฟล์ เป็น "-". อย่างไรก็ตาม, ชื่อไฟล์ ไม่ได้กำหนดไว้ภายใน
เริ่ม กฎ (เว้นแต่จะกำหนดโดย รับสาย).

FNR หมายเลขเร็กคอร์ดอินพุตในไฟล์อินพุตปัจจุบัน

ป.ป.ช นิพจน์ทั่วไปที่อธิบายเนื้อหาของฟิลด์ในเรกคอร์ด เมื่อไหร่
ชุด เพ่งพิศ แยกวิเคราะห์อินพุตลงในฟิลด์ โดยที่ฟิลด์ตรงกับค่าปกติ
นิพจน์ แทนที่จะใช้ค่าของ FS ตัวแปรเป็นฟิลด์
ตัวคั่น ดู สาขา, ข้างบน.

FS ตัวคั่นฟิลด์อินพุต ช่องว่างโดยค่าเริ่มต้น ดู สาขา, ข้างบน.

ฟังก์ชันแท็บ อาร์เรย์ที่มีดัชนีและค่าที่สอดคล้องกันคือชื่อของผู้ใช้ทั้งหมด-
กำหนดหรือขยายฟังก์ชันในโปรแกรม หมายเหตุ: คุณไม่สามารถใช้ the
ลบ แถลงการณ์กับ ฟังก์ชันแท็บ แถว

ละเว้น ควบคุมความอ่อนไหวของตัวพิมพ์ของนิพจน์ทั่วไปและการดำเนินการสตริงทั้งหมด
If ละเว้น มีค่าไม่เป็นศูนย์ จากนั้นจึงเปรียบเทียบสตริงและรูปแบบ
เข้าคู่กันในกฎ แบ่งสนามด้วย FS และ ป.ป.ช, บันทึกคั่นด้วย
RS, นิพจน์ทั่วไปจับคู่กับ ~ และ !~และ เจนซับ(), จีซับ(),
ดัชนี(), จับคู่(), แพทสปลิต(), แยก ()และ ย่อย () ฟังก์ชันในตัวทั้งหมดละเว้น
กรณีเมื่อดำเนินการนิพจน์ทั่วไป หมายเหตุ: การสมัครสมาชิกอาร์เรย์คือ
ไม่ ได้รับผลกระทบ อย่างไรก็ตาม คละประเภท () และ หลากหลาย() ฟังก์ชั่นได้รับผลกระทบ
ดังนั้นถ้า ละเว้น ไม่เท่ากับศูนย์ /เอบี/ ตรงกับทุกสายอักขระ
"แอ๊บ", "เอบี", "แอ๊บ"และ "เอบี". เช่นเดียวกับตัวแปร AWK ทั้งหมด ค่าเริ่มต้นของ
ละเว้น เป็นศูนย์ ดังนั้นการดำเนินการนิพจน์ทั่วไปและสตริงทั้งหมดจึงเป็น
ปกติจะคำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่

ผ้าสำลี ให้การควบคุมแบบไดนามิกของ --ผ้าสำลี ตัวเลือกจากภายในโปรแกรม AWK
เมื่อเป็นจริง เพ่งพิศ พิมพ์คำเตือนผ้าสำลี เมื่อเท็จก็ไม่ได้ เมื่อได้รับมอบหมาย
ค่าสตริง "ร้ายแรง", คำเตือนผ้าสำลีกลายเป็นข้อผิดพลาดร้ายแรง เหมือนกัน
--lint=เสียชีวิต. ค่าจริงอื่น ๆ เพียงแค่พิมพ์คำเตือน

NF จำนวนฟิลด์ในเร็กคอร์ดอินพุตปัจจุบัน

NR จำนวนบันทึกการป้อนข้อมูลทั้งหมดที่เห็นจนถึงขณะนี้

อฟท รูปแบบผลลัพธ์สำหรับตัวเลข "%.6g", โดยค่าเริ่มต้น.

FSO ตัวคั่นฟิลด์เอาต์พุต ช่องว่างโดยค่าเริ่มต้น

ออส ตัวคั่นเร็กคอร์ดเอาต์พุต โดยค่าเริ่มต้นจะเป็นการขึ้นบรรทัดใหม่

พรีค ความแม่นยำในการทำงานของตัวเลขทศนิยมที่มีความแม่นยำโดยพลการ 53 by
ค่าเริ่มต้น.

โปรซินโฟ องค์ประกอบของอาร์เรย์นี้ช่วยให้เข้าถึงข้อมูลเกี่ยวกับ AWK . ที่ทำงานอยู่
โปรแกรม. ในบางระบบ อาจมีองค์ประกอบในอาร์เรย์ "กลุ่มที่ 1"
ตลอด "กลุ่มn" สำหรับบางคน nซึ่งเป็นจำนวนกลุ่มเสริมที่
กระบวนการมี ใช้ in โอเปอเรเตอร์เพื่อทดสอบองค์ประกอบเหล่านี้ ดิ
รับประกันว่าองค์ประกอบต่อไปนี้จะพร้อมใช้งาน:

PROCINFO["อีจิด"] ค่าของ รับ(2) การเรียกระบบ

โปรซินโฟ["strftime"]
สตริงรูปแบบเวลาเริ่มต้นสำหรับ สตริฟไทม์().

โปรซินโฟ["euid"] ค่าของ รับ(2) การเรียกระบบ

PROCINFO["FS"] "เอฟเอส" ถ้าสนามแยกด้วย FS มีผลบังคับใช้ "ป.ป.ช." if
แยกสนามด้วย ป.ป.ช มีผลบังคับใช้หรือ "สนาม"
ถ้าสนามแยกด้วย สนาม มีผลบังคับใช้

PROCINFO["ตัวระบุ"]
อาร์เรย์ย่อย จัดทำดัชนีโดยชื่อของตัวระบุทั้งหมดที่ใช้
ในข้อความของโปรแกรม AWK ค่าบ่งชี้อะไร
เพ่งพิศ รู้เกี่ยวกับตัวระบุหลังจากเสร็จสิ้น
การแยกวิเคราะห์โปรแกรม พวกเขาคือ ไม่ ปรับปรุงในขณะที่
โปรแกรมทำงาน สำหรับแต่ละตัวระบุ ค่าของ
องค์ประกอบเป็นหนึ่งในสิ่งต่อไปนี้:

"อาร์เรย์"
ตัวระบุเป็นอาร์เรย์

"บิวอิน"
ตัวระบุเป็นฟังก์ชันในตัว

"การขยาย"
ตัวระบุเป็นฟังก์ชันส่วนขยายที่โหลดผ่าน
@โหลด or -l.

"สเกลาร์"
ตัวระบุเป็นสเกลาร์

"ไม่ได้พิมพ์"
ตัวระบุไม่ถูกพิมพ์ (สามารถใช้เป็นa
สเกลาร์หรืออาร์เรย์ เพ่งพิศ ยังไม่รู้)

"ผู้ใช้" ตัวระบุเป็นฟังก์ชันที่ผู้ใช้กำหนด

PROCINFO["gid"] ค่าของ เก็ทกิด(2) การเรียกระบบ

PROCINFO["pgrpid"] ID กลุ่มโปรเซสของโปรเซสปัจจุบัน

โปรซินโฟ["pid"] รหัสกระบวนการของกระบวนการปัจจุบัน

PROCINFO["ppid"] ID โปรเซสพาเรนต์ของโปรเซสปัจจุบัน

PROCINFO["uid"] ค่าของ เข้าใจ(2) การเรียกระบบ

PROCINFO["sorted_in"]
หากองค์ประกอบนี้มีอยู่ใน โปรซินโฟแล้วค่าของมัน
ควบคุมลำดับที่องค์ประกอบอาร์เรย์ถูกสำรวจ
in for ลูป ค่าที่รองรับคือ "@ind_str_asc",
"@ind_num_asc", "@val_type_asc", "@val_str_asc",
"@val_num_asc", "@ind_str_desc", "@ind_num_desc",
"@val_type_desc", "@val_str_desc", "@val_num_desc"และ
"@unsorted". ค่ายังสามารถเป็นชื่อของ any
ฟังก์ชันเปรียบเทียบกำหนดไว้ดังนี้:

ฟังก์ชัน cmp_func(i1, v1, i2, v2)

ที่ไหน i1 และ i2 คือดัชนี และ v1 และ v2 เป็น
ค่าที่สอดคล้องกันของทั้งสององค์ประกอบที่ถูกเปรียบเทียบ
ควรส่งคืนตัวเลขที่น้อยกว่าเท่ากับหรือมากกว่า
มากกว่า 0 ขึ้นอยู่กับองค์ประกอบของอาร์เรย์เป็นto
ได้รับคำสั่ง

PROCINFO["อินพุต", "READ_TIMEOUT"]
ระยะหมดเวลาในหน่วยมิลลิวินาทีสำหรับการอ่านข้อมูลจาก อินพุต,
ที่ไหน อินพุต เป็นสตริงการเปลี่ยนเส้นทางหรือชื่อไฟล์ ค่า
ของศูนย์หรือน้อยกว่าศูนย์หมายความว่าไม่มีการหมดเวลา

PROCINFO["mpfr_version"]
เวอร์ชันของไลบรารี GNU MPFR ที่ใช้โดยพลการ
รองรับตัวเลขที่แม่นยำใน เพ่งพิศ. รายการนี้ไม่ใช่
นำเสนอหากไม่ได้รวบรวมการสนับสนุน MPFR เป็น เพ่งพิศ.

PROCINFO["gmp_version"]
เวอร์ชันของไลบรารี GNU MP ที่ใช้โดยพลการ
รองรับตัวเลขที่แม่นยำใน เพ่งพิศ. รายการนี้ไม่ใช่
นำเสนอหากไม่ได้รวบรวมการสนับสนุน MPFR เป็น เพ่งพิศ.

PROCINFO["prec_max"]
ความแม่นยำสูงสุดที่สนับสนุนโดยไลบรารี GNU MPFR
สำหรับตัวเลขทศนิยมที่มีความแม่นยำตามอำเภอใจ นี้
ไม่มีรายการหากไม่ได้รวบรวมการสนับสนุน MPFR ลงใน
เพ่งพิศ.

PROCINFO["prec_min"]
ความแม่นยำขั้นต่ำที่อนุญาตโดยไลบรารี GNU MPFR สำหรับ
ตัวเลขทศนิยมที่มีความแม่นยำตามอำเภอใจ รายการนี้คือ
ไม่ปรากฏหากไม่ได้รวบรวมการสนับสนุน MPFR เป็น เพ่งพิศ.

PROCINFO["api_major"]
API ส่วนขยายเวอร์ชันหลัก รายการนี้ไม่ใช่
แสดงหากไม่มีการโหลดส่วนขยายไดนามิก

PROCINFO["api_minor"]
API ส่วนขยายเวอร์ชันรอง รายการนี้ไม่ใช่
แสดงหากไม่มีการโหลดส่วนขยายไดนามิก

PROCINFO["รุ่น"] เวอร์ชันของ เพ่งพิศ.

โหมดรอบ โหมดการปัดเศษเพื่อใช้สำหรับการคำนวณทางคณิตศาสตร์ที่แม่นยำกับตัวเลขโดย
ผิดนัด "NS" (โหมด IEEE-754 roundTiesToEven) ค่าที่ยอมรับได้คือ "NS" or
"น" สำหรับ roundTiesToEven, "ยู" or "ยู" สำหรับ roundTowardPositive, "D" or "ง" for
ปัดเศษไปทางลบ, "ซี" or "ซี" สำหรับ roundTowardZero และหากเวอร์ชันของคุณเป็น
ไลบรารี GNU MPFR รองรับ "ถึง" or "NS" สำหรับ RoundTiesToAway

RS ตัวคั่นบันทึกอินพุต โดยค่าเริ่มต้น ขึ้นบรรทัดใหม่

RT ตัวสิ้นสุดบันทึก ตะลึง ชุด RT ไปยังข้อความที่ป้อนที่ตรงกับ
อักขระหรือนิพจน์ทั่วไปที่ระบุโดย RS.

เริ่มต้นใหม่ ดัชนีของอักขระตัวแรกที่จับคู่โดย จับคู่(); 0 หากไม่ตรงกัน (นี้
แสดงว่าดัชนีตัวละครเริ่มต้นที่หนึ่ง)

ความยาว ความยาวของสตริงที่จับคู่โดย จับคู่(); -1 หากไม่มีการแข่งขัน

ย่อย อักขระที่ใช้แยกตัวห้อยหลายตัวในองค์ประกอบอาร์เรย์ โดย
ผิดนัด "\034".

ซิมทาบ อาร์เรย์ที่มีดัชนีเป็นชื่อของตัวแปรส่วนกลางทั้งหมดที่กำหนดไว้ในปัจจุบัน
และอาร์เรย์ในโปรแกรม อาร์เรย์อาจใช้สำหรับการเข้าถึงทางอ้อมเพื่ออ่าน
หรือเขียนค่าของตัวแปร:

foo = 5
SYMTAB["foo"] = 4
พิมพ์ foo # พิมพ์ 4

พื้นที่ อิซาเรย์() อาจใช้ฟังก์ชันเพื่อทดสอบว่าองค์ประกอบใน ซิมทาบ เป็น
อาร์เรย์ คุณไม่สามารถใช้ ลบ แถลงการณ์กับ ซิมทาบ แถว

ข้อความ โดเมนข้อความของโปรแกรม AWK ใช้เพื่อค้นหาคำแปลที่แปลแล้ว
สำหรับสตริงของโปรแกรม

อาร์เรย์
อาร์เรย์ถูกห้อยด้วยนิพจน์ระหว่างวงเล็บเหลี่ยม ([ และ ]). ถ้า
expression เป็นรายการนิพจน์ (ด่วน, ด่วน ...) ดังนั้นตัวห้อยอาร์เรย์คือสตริง
ประกอบด้วยการต่อค่า (สตริง) ของแต่ละนิพจน์ โดยคั่นด้วย
มูลค่าของ ย่อย ตัวแปร. สิ่งอำนวยความสะดวกนี้ใช้เพื่อจำลองการคูณมิติ
อาร์เรย์ ตัวอย่างเช่น:

i = "เอ"; j = "บี"; k = "C"
x[ผม, j, k] = "สวัสดี, โลก\n"

กำหนดสตริง "สวัสดี, โลก\n" ไปยังองค์ประกอบของอาร์เรย์ x ซึ่งจัดทำดัชนีโดย
เชือก "เป็น\034B\034C". อาร์เรย์ทั้งหมดใน AWK เป็นแบบเชื่อมโยง กล่าวคือ จัดทำดัชนีโดยค่าสตริง

ตัวดำเนินการพิเศษ in อาจใช้ทดสอบว่าอาร์เรย์มีดัชนีประกอบด้วย a . หรือไม่
ค่าเฉพาะ:

if (วาล in อาร์เรย์)
พิมพ์ อาร์เรย์[val]

หากอาร์เรย์มีตัวห้อยหลายตัว ให้ใช้ (และ, j) in แถว.

พื้นที่ in โครงสร้างอาจใช้ใน a for วนซ้ำองค์ประกอบทั้งหมดของ an
อาร์เรย์ อย่างไรก็ตาม (และ, j) in แถว construct ใช้ได้เฉพาะในการทดสอบ ไม่ใช่ใน for ลูป

องค์ประกอบอาจถูกลบออกจากอาร์เรย์โดยใช้ ลบ คำแถลง. NS ลบ คำสั่ง
อาจใช้เพื่อลบเนื้อหาทั้งหมดของอาร์เรย์ เพียงแค่ระบุ array
ชื่อที่ไม่มีตัวห้อย

เพ่งพิศ รองรับอาร์เรย์หลายมิติที่แท้จริง ไม่ต้องการให้อาร์เรย์ดังกล่าวเป็น
``สี่เหลี่ยม'' เช่นเดียวกับในภาษา C หรือ C++ ตัวอย่างเช่น:

เอ[1] = 5
เอ[2][1] = 6
เอ[2][2] = 7

หมายเหตุ: อาจจะต้องบอก เพ่งพิศ ว่าองค์ประกอบอาร์เรย์เป็นอาร์เรย์ย่อยจริงๆ เพื่อที่จะใช้
มันที่ไหน เพ่งพิศ คาดหวังอาร์เรย์ (เช่นในอาร์กิวเมนต์ที่สองถึง แยก ()). คุณทำได้
โดยสร้างองค์ประกอบในอาร์เรย์ย่อยแล้วลบด้วย ลบ
คำแถลง

ตัวแปร การพิมพ์ และ การแปลง
ตัวแปรและฟิลด์อาจเป็นตัวเลข (จุดลอยตัว) หรือสตริง หรือทั้งสองอย่าง มีค่าแค่ไหน
ของตัวแปรจะถูกตีความขึ้นอยู่กับบริบทของมัน หากใช้ในนิพจน์ตัวเลข
จะถือว่าเป็นตัวเลข หากใช้เป็นสตริงจะถือว่าเป็นสตริง

ในการบังคับตัวแปรให้เป็นตัวเลข ให้เติม 0 เข้าไป เพื่อบังคับให้ถือว่าเป็น
string ต่อด้วย null string

ตัวแปรที่ไม่ได้กำหนดค่าเริ่มต้นมีค่าตัวเลข 0 และค่าสตริง "" (ค่า null หรือ
ว่างเปล่าสตริง)

เมื่อต้องแปลงสตริงเป็นตัวเลข การแปลงทำได้โดยใช้
สตรอ(3). ตัวเลขจะถูกแปลงเป็นสตริงโดยใช้ค่าของ คอนวีเอฟเอ็มที เป็นรูปแบบ
สตริงสำหรับ วิ่ง(3) โดยมีค่าตัวเลขของตัวแปรเป็นอาร์กิวเมนต์ อย่างไรก็ตาม,
แม้ว่าตัวเลขทั้งหมดใน AWK จะเป็นทศนิยม ค่าปริพันธ์คือ เสมอ แปลงเป็น
จำนวนเต็ม ดังนั้น ให้

คอนวีเอฟเอ็มที = "%2.2f"
a = 12
b = a ""

ตัวแปร b มีค่าสตริงของ "12" และไม่ "12.00".

หมายเหตุ: เมื่อใช้งานในโหมด POSIX (เช่น ด้วยปุ่ม --posix ตัวเลือก) ระวังสถานที่นั้น
การตั้งค่าอาจรบกวนวิธีจัดการกับตัวเลขทศนิยม: ตัวคั่นทศนิยมของ
ตัวเลขที่คุณป้อน เพ่งพิศ ต้องสอดคล้องกับสิ่งที่สถานที่ของคุณคาดหวังไม่ว่าจะเป็น
ลูกน้ำ (,) หรือจุด (.)

ตะลึง ทำการเปรียบเทียบดังนี้ ถ้าตัวแปรสองตัวเป็นตัวเลข จะถูกเปรียบเทียบ
เป็นตัวเลข หากค่าหนึ่งเป็นตัวเลขและอีกค่าหนึ่งมีค่าสตริงที่เป็น “ตัวเลข
สตริง” จากนั้นจึงทำการเปรียบเทียบเป็นตัวเลขด้วย มิฉะนั้น ค่าตัวเลขคือ
แปลงเป็นสตริงและทำการเปรียบเทียบสตริง มีการเปรียบเทียบสองสายของ
แน่นอนเป็นสตริง

โปรดทราบว่าค่าคงที่สตริง เช่น "57"เป็น ไม่ สตริงตัวเลขก็คือสตริง
ค่าคงที่ แนวคิดของ "สตริงตัวเลข" ใช้กับฟิลด์เท่านั้น รับสาย อินพุต, ชื่อไฟล์,
อาร์จีวี องค์ประกอบ สิ่งแวดล้อม องค์ประกอบและองค์ประกอบของอาร์เรย์ที่สร้างขึ้นโดย แยก () or
แพทสปลิต() ที่เป็นสตริงตัวเลข แนวคิดพื้นฐานคือ ผู้ใช้งาน อินพุตและผู้ใช้เท่านั้น
อินพุตที่มีลักษณะเป็นตัวเลขควรได้รับการปฏิบัติเช่นนั้น

Octal และ เลขฐานสิบหก ค่าคงที่
คุณสามารถใช้ค่าคงที่ฐานแปดและฐานสิบหกแบบ C ในซอร์สโค้ดของโปรแกรม AWK ได้ สำหรับ
ตัวอย่าง ค่าฐานแปด 011 เท่ากับทศนิยม 9และค่าฐานสิบหก 0x11 is
เท่ากับทศนิยม 17

เชือก ค่าคงที่
ค่าคงที่สตริงใน AWK คือลำดับของอักขระที่อยู่ระหว่างเครื่องหมายคำพูดคู่ (like
"ค่า"). ภายในสตริงบาง หลบหนี ลำดับ ได้รับการยอมรับเช่นเดียวกับใน C. เหล่านี้คือ:

\\ แบ็กสแลชตามตัวอักษร

\a อักขระ "แจ้งเตือน"; มักจะเป็นอักขระ ASCII BEL

\b แบ็คสเปซ

\f ฟีดรูปแบบ.

\n ขึ้นบรรทัดใหม่

\r คืนรถ.

\t แท็บแนวนอน

\v แท็บแนวตั้ง

\xฐานสิบหก ตัวเลข
อักขระที่แสดงโดยสตริงของเลขฐานสิบหกหลังเครื่องหมาย \x. ในขณะที่
ใน ISO C เลขฐานสิบหกต่อไปนี้ทั้งหมดจะถือว่าเป็นส่วนหนึ่งของ Escape
ลำดับ. (คุณลักษณะนี้ควรบอกเราบางอย่างเกี่ยวกับการออกแบบภาษาโดย
คณะกรรมการ) เช่น "\x1B" เป็นอักขระ ASCII ESC (หนี)

\ddd อักขระที่แสดงโดยลำดับเลขฐานแปด 1, 2 หรือ 3 หลัก เช่น,
"\033" เป็นอักขระ ASCII ESC (หนี)

\c ตัวอักษร c.

ลำดับการหลบหนียังอาจใช้ภายในนิพจน์ทั่วไปคงที่ (เช่น
/[ \t\f\n\r\v]/ ตรงกับอักขระช่องว่าง)

ในโหมดความเข้ากันได้ อักขระที่แสดงโดย Escape ฐานแปดและฐานสิบหก
ลำดับจะได้รับการปฏิบัติอย่างแท้จริงเมื่อใช้ในค่าคงที่นิพจน์ทั่วไป ดังนั้น, /ก\52b/
เทียบเท่ากับ /ก\*ข/.

รูปแบบ AND การกระทำ


AWK เป็นภาษาที่ใช้บรรทัด รูปแบบมาก่อนแล้วจึงดำเนินการ หนังบู๊
งบอยู่ใน { และ }. อย่างใดอย่างหนึ่งรูปแบบอาจจะหายไปหรือการกระทำอาจจะ
จะหายไป แต่แน่นอน ไม่ใช่ทั้งสองอย่าง หากรูปแบบหายไป การดำเนินการจะถูกดำเนินการ
สำหรับทุกเร็กคอร์ดของอินพุต การกระทำที่ขาดหายไปจะเท่ากับ

{ พิมพ์ }

ซึ่งพิมพ์บันทึกทั้งหมด

ความคิดเห็นเริ่มต้นด้วย # อักขระและไปต่อจนสุดบรรทัด เส้นเปล่า
สามารถใช้แยกประโยคได้ โดยปกติ คำสั่งจะลงท้ายด้วยการขึ้นบรรทัดใหม่ อย่างไรก็ตาม
นี่ไม่ใช่กรณีสำหรับบรรทัดที่ลงท้ายด้วยลูกน้ำ {, ?, :, &&,หรือ ||. บรรทัดที่ลงท้ายด้วย do
or อื่น ให้ถ้อยแถลงต่อโดยอัตโนมัติในบรรทัดต่อไปนี้ ใน
กรณีอื่นๆ สามารถต่อบรรทัดต่อได้ด้วยการลงท้ายด้วย “\" ซึ่งในกรณีขึ้นบรรทัดใหม่คือ
ละเว้น

ประโยคหลายประโยคสามารถใส่ในบรรทัดเดียวโดยคั่นด้วย “;” สิ่งนี้ใช้กับ
ทั้งคำสั่งภายในส่วนการกระทำของคู่รูปแบบการกระทำ (กรณีปกติ) และ
กับคำสั่งรูปแบบการกระทำเอง

รูปแบบ
รูปแบบ AWK อาจเป็นหนึ่งในรูปแบบต่อไปนี้:

เริ่ม
END
เริ่มต้น
สิ้นสุด
/ปกติ การแสดงออก/
สัมพันธ์ การแสดงออก
Belt hold && Belt hold
Belt hold || Belt hold
Belt hold ? Belt hold : Belt hold
(Belt hold )
! Belt hold
pattern1, pattern2

เริ่ม และ END เป็นรูปแบบพิเศษสองแบบที่ไม่ได้ทดสอบกับอินพุต
ส่วนการกระทำของทั้งหมด เริ่ม รูปแบบถูกผสานราวกับว่าคำสั่งทั้งหมดได้รับ
เขียนในเล่มเดียว เริ่ม กฎ. พวกมันจะถูกดำเนินการก่อนที่จะอ่านอินพุตใดๆ
ในทำนองเดียวกัน . ทั้งหมด END กฎจะถูกรวมเข้าด้วยกันและดำเนินการเมื่ออินพุตทั้งหมดหมด (หรือ
เมื่อ ทางออก คำสั่งถูกดำเนินการ) เริ่ม และ END ไม่สามารถรวมลวดลายกับแบบอื่นๆ ได้
รูปแบบในการแสดงออกของรูปแบบ เริ่ม และ END รูปแบบต้องไม่มีส่วนการกระทำที่ขาดหายไป

เริ่มต้น และ สิ้นสุด เป็นรูปแบบพิเศษเพิ่มเติมที่ร่างกายถูกประหารชีวิตมาก่อน
อ่านบันทึกแรกของไฟล์อินพุตบรรทัดคำสั่งแต่ละไฟล์และหลังจากอ่านบันทึกสุดท้ายแล้ว
ของแต่ละไฟล์ ข้างใน เริ่มต้น กฎ ค่าของ เออร์โน่ จะเป็นสตริงว่าง if
ไฟล์ถูกเปิดสำเร็จ มิฉะนั้น จะมีปัญหากับไฟล์และไฟล์
รหัสควรใช้ ไฟล์ถัดไป เพื่อข้ามมันไป ถ้าไม่ได้ทำ เพ่งพิศ ก่อให้เกิดอันตรายถึงชีวิตได้ตามปกติ
ข้อผิดพลาดสำหรับไฟล์ที่ไม่สามารถเปิดได้

สำหรับ /ปกติ การแสดงออก/ รูปแบบ คำสั่งที่เกี่ยวข้องจะถูกดำเนินการสำหรับแต่ละอินพุต
บันทึกที่ตรงกับนิพจน์ทั่วไป นิพจน์ทั่วไปเหมือนกับนิพจน์ใน
นกกระยาง(1) และสรุปได้ดังนี้

A สัมพันธ์ การแสดงออก อาจใช้ตัวดำเนินการใด ๆ ที่กำหนดไว้ด้านล่างในหัวข้อ
การกระทำ โดยทั่วไปสิ่งเหล่านี้จะทดสอบว่าบางฟิลด์ตรงกับนิพจน์ทั่วไปหรือไม่

พื้นที่ &&, ||และ ! ตัวดำเนินการเป็นตรรกะ AND, ตรรกะ OR และตรรกะ NOT ตามลำดับ
เช่นเดียวกับใน C พวกเขาทำการประเมินการลัดวงจรเช่นเดียวกับใน C และใช้สำหรับการรวม more
นิพจน์รูปแบบดั้งเดิม ในภาษาส่วนใหญ่ วงเล็บสามารถใช้เปลี่ยนได้
ลำดับการประเมิน

พื้นที่ ?: โอเปอเรเตอร์ก็เหมือนโอเปอเรเตอร์เดียวกันใน C หากรูปแบบแรกเป็นจริง
รูปแบบที่ใช้สำหรับการทดสอบคือรูปแบบที่สอง มิฉะนั้นจะเป็นรูปแบบที่สาม หนึ่งเดียวใน
รูปแบบที่สองและสามจะถูกประเมิน

พื้นที่ pattern1, pattern2 รูปแบบของนิพจน์เรียกว่า a พิสัย Belt hold . ตรงทุกประการ
อินพุตเร็กคอร์ดที่ขึ้นต้นด้วยเร็กคอร์ดที่ตรงกัน pattern1และต่อเนื่องไปจนถึงบันทึก
ที่ตรงกัน pattern2รวม. ไม่ผสมลวดลายอื่นๆ
การแสดงออก

ปกติ การแสดงออก
นิพจน์ทั่วไปเป็นชนิดขยายที่พบใน นกกระยาง. ประกอบด้วยตัวละคร
ดังต่อไปนี้:

c ตรงกับอักขระที่ไม่ใช่ metacharacter c.

\c ตรงกับตัวอักษร c.

. ตรงกับตัวอักษรใด ๆ รวมทั้ง ขึ้นบรรทัดใหม่

^ ตรงกับจุดเริ่มต้นของสตริง

$ จับคู่ส่วนท้ายของสตริง

[เอบีซี...] รายการอักขระ: ตรงกับอักขระใด ๆ เอบีซี.... คุณอาจรวม a
ช่วงของอักขระโดยคั่นด้วยเส้นประ

[^เอบีซี...] รายการอักขระที่ถูกปฏิเสธ: ตรงกับอักขระใดๆ ยกเว้น เอบีซี....

r1|r2 ทางเลือก: ตรงกันอย่างใดอย่างหนึ่ง r1 or r2.

r1r2 การต่อ: ตรงกัน r1และจากนั้น r2.

r+ ตรงกับหนึ่งหรือมากกว่า r's

r* ตรงกับศูนย์หรือมากกว่า r's

r? ตรงกับศูนย์หรือหนึ่ง r's

(r) การจัดกลุ่ม: การแข่งขัน r.

r{n}
r{n,}
r{n,m} ตัวเลขหนึ่งหรือสองตัวในวงเล็บหมายถึง an ระยะห่าง การแสดงออก. ถ้ามี
ตัวเลขหนึ่งตัวในวงเล็บปีกกา นิพจน์ทั่วไปที่อยู่ข้างหน้า r ซ้ำแล้วซ้ำเล่า n
ครั้ง หากมีตัวเลขสองตัวคั่นด้วยเครื่องหมายจุลภาค r ซ้ำแล้วซ้ำเล่า n ไปยัง m
ครั้ง หากมีตัวเลขหนึ่งตัวตามด้วยเครื่องหมายจุลภาค แสดงว่า r ซ้ำอย่างน้อย
n ครั้ง

\y จับคู่สตริงว่างที่จุดเริ่มต้นหรือจุดสิ้นสุดของคำ

\B จับคู่สตริงว่างภายในคำ

\< จับคู่สตริงว่างที่จุดเริ่มต้นของคำ

\> จับคู่สตริงว่างที่ท้ายคำ

\s จับคู่อักขระช่องว่างใดๆ

\S จับคู่อักขระที่ไม่ใช่ช่องว่าง

\w จับคู่อักขระที่เป็นส่วนประกอบของคำ (ตัวอักษร ตัวเลข หรือขีดล่าง)

\W จับคู่อักขระใดๆ ที่ไม่ใช่ส่วนประกอบของคำ

\` จับคู่สตริงว่างที่จุดเริ่มต้นของบัฟเฟอร์ (สตริง)

\' จับคู่สตริงว่างที่ส่วนท้ายของบัฟเฟอร์

ลำดับหลีกที่ถูกต้องในค่าคงที่สตริง (ดู เชือก ค่าคงที่) ก็เช่นกัน
ใช้ได้ในนิพจน์ทั่วไป

คาแรคเตอร์ ชั้นเรียน เป็นคุณลักษณะที่นำมาใช้ในมาตรฐาน POSIX คลาสอักขระคือ a
สัญกรณ์พิเศษสำหรับอธิบายรายการอักขระที่มีคุณสมบัติเฉพาะ แต่
โดยที่ตัวละครจริงอาจแตกต่างกันไปในแต่ละประเทศและ/หรือจาก
ชุดอักขระเป็นชุดอักขระ ตัวอย่างเช่น แนวคิดของสิ่งที่เป็นตัวอักษร
อักขระแตกต่างกันในสหรัฐอเมริกาและในฝรั่งเศส

คลาสอักขระใช้ได้เฉพาะในนิพจน์ทั่วไป ภายใน วงเล็บของตัวละคร
รายการ. คลาสตัวละครประกอบด้วย [:, คีย์เวิร์ดที่แสดงถึงคลาส, และ :].
คลาสอักขระที่กำหนดโดยมาตรฐาน POSIX คือ:

[:อัลบั้ม:] อักขระที่เป็นตัวอักษรและตัวเลขคละกัน

[:อัลฟ่า:] ตัวอักษร

[:ว่างเปล่า:] อักขระช่องว่างหรือแท็บ

[:ควบคุม:] ตัวละครควบคุม

[:ตัวเลข:] อักขระที่เป็นตัวเลข

[:กราฟ:] อักขระที่พิมพ์ได้และมองเห็นได้ (ช่องว่างสามารถพิมพ์ได้ แต่ไม่ใช่
มองเห็นได้ในขณะที่ an a เป็นทั้งสองอย่าง)

[:ต่ำกว่า:] ตัวอักษรตัวพิมพ์เล็ก

[:พิมพ์:] อักขระที่พิมพ์ได้ (อักขระที่ไม่ใช่อักขระควบคุม)

[:หมัด:] อักขระเครื่องหมายวรรคตอน (อักขระที่ไม่ใช่ตัวอักษร ตัวเลข ตัวควบคุม
อักขระหรืออักขระช่องว่าง)

[:ช่องว่าง:] อักขระเว้นวรรค (เช่น ช่องว่าง แท็บ และ formfeed เป็นต้น)

[:บน:] ตัวอักษรตัวพิมพ์ใหญ่

[:xdigit:] อักขระที่เป็นเลขฐานสิบหก

ตัวอย่างเช่น ก่อนมาตรฐาน POSIX หากต้องการจับคู่อักขระที่เป็นตัวอักษรและตัวเลขคละกัน คุณจะต้องมี
ต้องเขียน /[อา-ซ่า-z0-9]/. หากชุดอักขระของคุณมีตัวอักษรอื่นอยู่
สิ่งนี้จะไม่ตรงกับพวกเขา และหากชุดอักขระของคุณเรียงแตกต่างจาก ASCII สิ่งนี้
อาจไม่ตรงกับอักขระที่เป็นตัวอักษรและตัวเลขคละกันของ ASCII ด้วยคลาสอักขระ POSIX
คุณสามารถเขียน /[[:อัลบั้ม:]]/และตรงกับตัวอักษรและตัวเลขใน
ชุดอักขระของคุณไม่ว่าจะเป็นอะไรก็ตาม

ลำดับพิเศษเพิ่มเติมสองรายการสามารถปรากฏในรายการอักขระ สิ่งเหล่านี้ใช้กับผู้ที่ไม่ใช่ ASCII
ชุดอักขระ ซึ่งสามารถมีสัญลักษณ์เดียว (เรียกว่า กำลังเรียง องค์ประกอบ) นั้นคือ
แสดงด้วยอักขระมากกว่าหนึ่งตัว รวมทั้งอักขระหลายตัวที่เป็น
เทียบเท่ากับ กำลังเรียงหรือการเรียงลำดับวัตถุประสงค์ (เช่น ในภาษาฝรั่งเศส ตัว “e” และ a . ธรรมดา
ที่เน้นหนัก "`" เทียบเท่า)

การเรียงสัญลักษณ์
สัญลักษณ์การเรียงเป็นองค์ประกอบการเรียงอักขระหลายตัวที่อยู่ใน [. และ .].
ตัวอย่างเช่นถ้า ch เป็นองค์ประกอบการเรียง ดังนั้น [[ช.]] เป็นนิพจน์ทั่วไป
ที่ตรงกับองค์ประกอบการเรียงนี้ในขณะที่ [ช] เป็นนิพจน์ทั่วไปที่
ตรงกันทั้ง c or h.

คลาสเทียบเท่า
คลาสสมมูลคือชื่อเฉพาะสถานที่สำหรับรายการอักขระที่เป็น
เทียบเท่า. ชื่ออยู่ใน [= และ =]. ตัวอย่างเช่น ชื่อ e อาจจะมี
ใช้แทน "e" "´" และ "`" ทั้งหมด ในกรณีนี้, [[=อี=]] เป็นประจำ
นิพจน์ที่ตรงกับใด ๆ ของ e, อี',หรือ e`.

คุณลักษณะเหล่านี้มีค่ามากในสถานที่ที่ไม่ได้ใช้ภาษาอังกฤษ หน้าที่ของห้องสมุด
ที่ เพ่งพิศ ใช้สำหรับการจับคู่นิพจน์ทั่วไปในปัจจุบันรับรู้เฉพาะอักขระ POSIX
ชั้นเรียน; พวกเขาไม่รู้จักการเรียงสัญลักษณ์หรือคลาสสมมูล

พื้นที่ \y, \B, \<, \>, \s, \S, \w, \W, \`และ \' ตัวดำเนินการมีความเฉพาะเจาะจงกับ เพ่งพิศ; พวกเขาคือ
ส่วนขยายตามสิ่งอำนวยความสะดวกในไลบรารีนิพจน์ทั่วไปของ GNU

ตัวเลือกบรรทัดคำสั่งต่างๆ ควบคุมวิธีการ เพ่งพิศ ตีความอักขระตามปกติ
นิพจน์

ไม่มีตัวเลือก
ในกรณีเริ่มต้น เพ่งพิศ จัดเตรียมสิ่งอำนวยความสะดวกทั้งหมดของนิพจน์ทั่วไป POSIX
และตัวดำเนินการนิพจน์ทั่วไปของ GNU ที่อธิบายไว้ข้างต้น

--posix
รองรับเฉพาะนิพจน์ทั่วไป POSIX เท่านั้น ตัวดำเนินการ GNU ไม่ใช่ตัวดำเนินการพิเศษ
(เช่น, \w ตรงกับตัวอักษร w).

--แบบดั้งเดิม
UNIX แบบดั้งเดิม awk นิพจน์ทั่วไปจะถูกจับคู่ ตัวดำเนินการ GNU ไม่ใช่
ไม่มีนิพจน์พิเศษและช่วงเวลา อักขระที่อธิบายโดยเลขฐานแปด
และลำดับหลีกเลขฐานสิบหกได้รับการปฏิบัติอย่างแท้จริง แม้ว่าจะเป็นตัวแทนของ
อักขระเมตานิพจน์ทั่วไป

--re-ช่วงเวลา
อนุญาตให้ใช้นิพจน์ช่วงเวลาในนิพจน์ทั่วไป แม้ว่า --แบบดั้งเดิม ที่ได้รับ
ให้.

สถานะ
คำสั่งการดำเนินการอยู่ในวงเล็บปีกกา { และ }. คำสั่งการดำเนินการประกอบด้วยปกติ
คำสั่งการมอบหมายเงื่อนไขและการวนซ้ำที่พบในภาษาส่วนใหญ่ ผู้ประกอบการ
คำสั่งควบคุม และคำสั่งอินพุต/เอาต์พุตที่มีจะมีรูปแบบตามหลังในภาษา C

โอเปอร์เตอร์-ผู้ประกอบการ
โอเปอเรเตอร์ใน AWK เรียงตามลำดับความสำคัญที่ลดลง ได้แก่:

(...) หมวดหมู่

$ การอ้างอิงภาคสนาม

++ -- เพิ่มและลดทั้งคำนำหน้าและคำต่อท้าย

^ การยกกำลัง (** อาจใช้ได้เช่นกันและ - สำหรับผู้ดำเนินการมอบหมาย)

+ - ! ยูนารีบวก ยูนารีลบ และการปฏิเสธเชิงตรรกะ

* / % การคูณ การหาร และโมดูลัส

+ - การบวกและการลบ

ช่องว่าง การต่อสายอักขระ

| |& I/O แบบท่อสำหรับ รับสาย, พิมพ์และ printf.

< > <= >= != ==
ตัวดำเนินการเชิงสัมพันธ์ปกติ

~ !~ การจับคู่นิพจน์ทั่วไป การจับคู่แบบปฏิเสธ หมายเหตุ: อย่าใช้ค่าคงที่แบบปกติ
การแสดงออก (/ฟู/) ทางด้านซ้ายมือของ a ~ or !~. ใช้เพียงอันเดียวบน
ด้านขวามือ การแสดงออก /ฟู/ ~ ประสบการณ์ มีความหมายเดียวกับ (($0 ~
/ฟู/) ~ ประสบการณ์). ซึ่งโดยปกติแล้ว ไม่ คุณต้องการอะไร.

in การเป็นสมาชิกอาร์เรย์

&& ตรรกะและ

|| ตรรกะหรือ.

?: นิพจน์เงื่อนไข C นี้มีรูปแบบ หมดอายุ1 ? หมดอายุ2 : หมดอายุ3. ถ้า
หมดอายุ1 เป็นจริง ค่าของนิพจน์คือ หมดอายุ2มิฉะนั้นก็คือ หมดอายุ3.
หนึ่งเดียวใน หมดอายุ2 และ หมดอายุ3 จะได้รับการประเมิน

= += -= *= /= %= ^=
งานที่มอบหมาย. ทั้งการมอบหมายที่แน่นอน (คือ = ความคุ้มค่า) และการมอบหมายตัวดำเนินการ
(รูปแบบอื่นๆ) ได้รับการสนับสนุน

Control งบ
คำสั่งควบคุมมีดังนี้:

if (สภาพ) คำสั่ง [ อื่น คำสั่ง ]
ในขณะที่ (สภาพ) คำสั่ง
do คำสั่ง ในขณะที่ (สภาพ)
for (หมดอายุ1; หมดอายุ2; หมดอายุ3) คำสั่ง
for (คือ in แถว) คำสั่ง
ทำลาย
ต่อ
ลบ แถว[ดัชนี]
ลบ แถว
ทางออก [ การแสดงออก ]
{ งบ }
สลับ (การแสดงออก) {
กรณี ความคุ้มค่า|นิพจน์ทั่วไป : คำสั่ง
...
[ ค่าเริ่มต้น: คำสั่ง ]
}

I / O งบ
คำสั่งอินพุต/เอาต์พุตมีดังนี้:

ปิด(ไฟล์ [, อย่างไร]) ปิดไฟล์ ไปป์หรือโปรเซสร่วม ตัวเลือก อย่างไร ควรจะเป็นเท่านั้น
ใช้เมื่อปิดปลายด้านหนึ่งของท่อสองทางกับกระบวนการร่วม มัน
ต้องเป็นค่าสตริงเช่นกัน "ถึง" or "จาก".

รับสาย ชุด $0 จากบันทึกอินพุตถัดไป ชุด NF, NR, FNR, RT.

รับสาย <ไฟล์ ชุด $0 จากบันทึกถัดไปของ ไฟล์; ชุด NF, RT.

รับสาย คือ ชุด คือ จากบันทึกอินพุตถัดไป ชุด NR, FNR, RT.

รับสาย คือ <ไฟล์ ชุด คือ จากบันทึกถัดไปของ ไฟล์, RT.

คำสั่ง | รับสาย [คือ]
วิ่ง คำสั่ง วางท่อเอาท์พุตเข้าใน $0 or คือดังกล่าวข้างต้นและ
RT.

คำสั่ง |& รับสาย [คือ]
วิ่ง คำสั่ง เป็นกระบวนการร่วมที่ส่งเอาต์พุตไปยัง $0 or คือ,
ดังข้างบนนี้ และ RT. กระบวนการร่วมคือ a เพ่งพิศ การขยาย. (คำสั่ง สามารถ
ยังเป็นซ็อกเก็ต ดูส่วนย่อย พิเศษ เนื้อไม่มีมัน ชื่อ, ด้านล่าง.)

ถัดไป หยุดการประมวลผลบันทึกอินพุตปัจจุบัน บันทึกอินพุตถัดไปคือ
การอ่านและการประมวลผลเริ่มต้นใหม่ด้วยรูปแบบแรกใน AWK
โปรแกรม. เมื่อถึงจุดสิ้นสุดของข้อมูลที่ป้อน เพ่งพิศ ดำเนินการใดๆ
END กฎ).

ไฟล์ถัดไป หยุดการประมวลผลไฟล์อินพุตปัจจุบัน บันทึกการป้อนข้อมูลถัดไปอ่าน
มาจากไฟล์อินพุตถัดไป ชื่อไฟล์ และ อาร์จินด์ มีการปรับปรุง
FNR ถูกรีเซ็ตเป็น 1 และการประมวลผลเริ่มต้นใหม่ด้วยรูปแบบแรก
ในโปรแกรม AWK เมื่อถึงจุดสิ้นสุดของข้อมูลที่ป้อน เพ่งพิศ
ดำเนินการใดๆ END กฎ).

พิมพ์ พิมพ์บันทึกปัจจุบัน บันทึกผลลัพธ์สิ้นสุดลงด้วย
ค่าของ ออส.

พิมพ์ รายการ expr พิมพ์นิพจน์ แต่ละนิพจน์คั่นด้วยค่าของ
FSO. บันทึกผลลัพธ์สิ้นสุดลงด้วยค่าของ ออส.

พิมพ์ รายการ expr >ไฟล์ พิมพ์นิพจน์บน ไฟล์. แต่ละนิพจน์คั่นด้วย
ค่าของ FSO. บันทึกผลลัพธ์สิ้นสุดลงด้วยค่าของ
ออส.

printf เอฟเอ็ม รายการ expr จัดรูปแบบและพิมพ์ ดู พื้นที่ printf คำแถลงด้านล่าง

printf เอฟเอ็ม รายการ expr >ไฟล์
จัดรูปแบบและพิมพ์บน ไฟล์.

ระบบ(cmd บรรทัด) ดำเนินการคำสั่ง cmd บรรทัดและส่งคืนสถานะการออก (นี้อาจจะ
ไม่สามารถใช้ได้กับระบบที่ไม่ใช่ POSIX)

ฟลัช ([ไฟล์]) ล้างบัฟเฟอร์ที่เกี่ยวข้องกับไฟล์เอาต์พุตที่เปิดอยู่หรือไพพ์ ไฟล์.
If ไฟล์ หายไปหรือหากเป็นสตริงว่าง ให้ล้างข้อมูลทั้งหมดที่เปิดอยู่
ไฟล์เอาต์พุตและไพพ์

อนุญาตให้เปลี่ยนเส้นทางเอาต์พุตเพิ่มเติมสำหรับ พิมพ์ และ printf.

พิมพ์ ... >> ไฟล์
ต่อท้ายเอาต์พุตไปยัง ไฟล์.

พิมพ์ ... | คำสั่ง
เขียนบนท่อ

พิมพ์ ... |& คำสั่ง
ส่งข้อมูลไปยังโปรเซสร่วมหรือซ็อกเก็ต (ดูส่วนย่อยเพิ่มเติม พิเศษ เนื้อไม่มีมัน ชื่อ,
ด้านล่าง)

พื้นที่ รับสาย คำสั่งคืนค่า 1 เมื่อสำเร็จ 0 เมื่อสิ้นสุดไฟล์ และ -1 เมื่อเกิดข้อผิดพลาด เมื่อ an
ข้อผิดพลาด เออร์โน่ ถูกตั้งค่าเป็นสตริงที่อธิบายปัญหา

หมายเหตุ: ความล้มเหลวในการเปิดซ็อกเก็ตสองทางส่งผลให้เกิดข้อผิดพลาดที่ไม่ร้ายแรงถูกส่งกลับไปยัง
ฟังก์ชั่นการโทร หากใช้ไปป์ โปรเซส หรือเต้ารับเพื่อ รับสายหรือจาก พิมพ์ or
printf ภายในวง คุณ ต้อง ใช้ ปิด() เพื่อสร้างอินสแตนซ์ใหม่ของคำสั่งหรือ
เบ้า. AWK จะไม่ปิดไปป์ ซ็อกเก็ต หรือโปรเซสร่วมโดยอัตโนมัติเมื่อส่งคืน
อีโอเอฟ

พื้นที่ printf คำแถลง
เวอร์ชัน AWK ของ printf คำสั่งและ วิ่ง() ฟังก์ชั่น (ดูด้านล่าง) ยอมรับ
รูปแบบข้อกำหนดการแปลงต่อไปนี้:

%c ตัวเดียว. ถ้าอาร์กิวเมนต์ใช้สำหรับ %c เป็นตัวเลข จะถือว่าเป็น a
ตัวอักษรและพิมพ์ มิฉะนั้น จะถือว่าอาร์กิวเมนต์เป็นสตริง และ
พิมพ์เฉพาะอักขระตัวแรกของสตริงนั้น

%d, %i เลขฐานสิบ (ส่วนจำนวนเต็ม)

%e, %E เลขทศนิยมของแบบฟอร์ม [-]d.dddddde[+-]dd. %E รูปแบบการใช้งาน E
แทน e.

%f, %F เลขทศนิยมของแบบฟอร์ม [-]ddd.dddddd. หากไลบรารีระบบรองรับ
มัน %F สามารถใช้ได้เช่นกัน ประมาณนี้ค่ะ %fแต่ใช้อักษรตัวพิมพ์ใหญ่สำหรับกรณีพิเศษ
ค่า "ไม่ใช่ตัวเลข" และ "อนันต์" ถ้า %F ไม่สามารถใช้งานได้, เพ่งพิศ ใช้ %f.

%g, %G ใช้ %e or %f การแปลง แล้วแต่จำนวนใดจะสั้นกว่า โดยมีค่าศูนย์ที่ไม่มีนัยสำคัญ
ถูกระงับ NS %G รูปแบบการใช้งาน %E แทน %e.

%o เลขฐานแปดไม่มีเครื่องหมาย (เป็นจำนวนเต็มด้วย)

%u ตัวเลขทศนิยมที่ไม่ได้ลงนาม (อีกครั้งเป็นจำนวนเต็ม)

%s สตริงอักขระ

%x, %X เลขฐานสิบหกที่ไม่ได้ลงนาม (จำนวนเต็ม) ดิ %X รูปแบบการใช้งาน เอบีซีดีเอฟ แทน
เอบีซีดีเอฟ.

%% โสด % อักขระ; ไม่มีการแปลงอาร์กิวเมนต์

ทางเลือก พารามิเตอร์เพิ่มเติมอาจอยู่ระหว่าง % และจดหมายควบคุม:

นับ$ ใช้ นับอาร์กิวเมนต์ที่จุดนี้ในการจัดรูปแบบ นี้เรียกว่า
ตำแหน่ง ตัวระบุ และมีจุดประสงค์เพื่อใช้ในเวอร์ชันแปลของ .เป็นหลัก
รูปแบบสตริง ไม่ใช่ข้อความต้นฉบับของโปรแกรม AWK มันคือ เพ่งพิศ
การขยาย.

- นิพจน์ควรชิดซ้ายภายในฟิลด์

ช่องว่าง สำหรับการแปลงตัวเลข ให้เติมค่าบวกด้วยการเว้นวรรค และค่าลบ
มีเครื่องหมายลบ

+ เครื่องหมายบวก ใช้ก่อนตัวแก้ไขความกว้าง (ดูด้านล่าง) ระบุว่าจะใส่ a . เสมอ
ลงชื่อเข้าใช้การแปลงตัวเลข แม้ว่าข้อมูลที่จะจัดรูปแบบจะเป็นค่าบวก ดิ +
แทนที่ตัวแก้ไขพื้นที่

# ใช้ "แบบฟอร์มสำรอง" สำหรับจดหมายควบคุมบางฉบับ สำหรับ %o, จัดหาสินค้าชั้นนำ
ศูนย์. สำหรับ %xและ %X, จัดหาสินค้าชั้นนำ 0x or 0X เพื่อผลลัพธ์ที่ไม่ใช่ศูนย์ สำหรับ %e, %E,
%f และ %Fผลลัพธ์จะมีจุดทศนิยมเสมอ สำหรับ %gและ %G, ต่อท้าย
ศูนย์จะไม่ถูกลบออกจากผลลัพธ์

0 เป็นผู้นำ 0 (ศูนย์) ทำหน้าที่เป็นแฟล็ก ซึ่งบ่งชี้ว่าเอาต์พุตควรหุ้มด้วย
ศูนย์แทนที่จะเป็นช่องว่าง สิ่งนี้ใช้ได้กับรูปแบบเอาต์พุตที่เป็นตัวเลขเท่านั้น นี้
แฟล็กจะมีผลเมื่อความกว้างของฟิลด์กว้างกว่าค่าที่จะพิมพ์เท่านั้น

' ตัวอัญประกาศตัวเดียวแนะนำ เพ่งพิศ เพื่อแทรกตัวคั่นหลักพันของโลแคล
อักขระเป็นตัวเลขทศนิยม และใช้จุดทศนิยมของโลแคลด้วย
อักขระที่มีรูปแบบจุดลอยตัว สิ่งนี้ต้องการการสนับสนุนสถานที่ที่ถูกต้องใน
ไลบรารี C และในคำจำกัดความของสถานที่ปัจจุบัน

ความกว้าง ฟิลด์ควรถูกเสริมด้วยความกว้างนี้ ปกติสนามจะบุด้วย
ช่องว่าง กับ 0 ธง มันถูกบุด้วยศูนย์

.ล่วงหน้า ตัวเลขที่ระบุความแม่นยำที่จะใช้เมื่อพิมพ์ สำหรับ %e, %E, %f และ
%F, รูปแบบ ระบุจำนวนหลักที่คุณต้องการพิมพ์ทางด้านขวาของ
จุดทศนิยม สำหรับ %gและ %G รูปแบบจะระบุจำนวนสูงสุดของ
ตัวเลขที่สำคัญ สำหรับ %d, %i, %o, %u, %xและ %X รูปแบบจะระบุ
จำนวนตัวเลขขั้นต่ำที่จะพิมพ์ สำหรับ %s, มันระบุจำนวนสูงสุดของ
อักขระจากสตริงที่ควรพิมพ์

แบบไดนามิก ความกว้าง และ ล่วงหน้า ความสามารถของ ISO C พิมพ์f() กิจวัตรได้รับการสนับสนุน อา *
แทน ความกว้าง or ล่วงหน้า ข้อมูลจำเพาะทำให้ค่าของพวกเขาถูกนำมาจาก
รายการอาร์กิวเมนต์to printf or วิ่ง(). ในการใช้ตัวระบุตำแหน่งกับไดนามิก
ความกว้างหรือความแม่นยำ จัดหา นับ$ หลังจากที่ * ในสตริงรูปแบบ ตัวอย่างเช่น,
"%3$*2$.*1$s".

พิเศษ เนื้อไม่มีมัน ชื่อ
เมื่อทำการเปลี่ยนเส้นทาง I/O จากทั้ง พิมพ์ or printf เป็นไฟล์หรือผ่าน รับสาย จาก
ไฟล์, เพ่งพิศ รู้จักชื่อไฟล์พิเศษบางอย่างภายใน ชื่อไฟล์เหล่านี้อนุญาตให้เข้าถึง
เพื่อเปิดไฟล์คำอธิบายที่สืบทอดมาจาก เพ่งพิศกระบวนการหลักของ (โดยปกติคือเชลล์) เหล่านี้
อาจใช้ชื่อไฟล์บนบรรทัดคำสั่งเพื่อตั้งชื่อไฟล์ข้อมูล ชื่อไฟล์คือ:

- อินพุตมาตรฐาน

/dev/stdin อินพุตมาตรฐาน

/dev/stdout เอาต์พุตมาตรฐาน

/dev/stderr เอาต์พุตข้อผิดพลาดมาตรฐาน

/dev/fd/n ไฟล์ที่เกี่ยวข้องกับ open file descriptor n.

สิ่งเหล่านี้มีประโยชน์อย่างยิ่งสำหรับข้อความแสดงข้อผิดพลาด ตัวอย่างเช่น:

พิมพ์ "คุณ พัด มัน!" > "/dev/stderr"

ในขณะที่คุณจะต้องใช้

พิมพ์ "คุณ พัด มัน!" | "แมว 1>&2"

ชื่อไฟล์พิเศษต่อไปนี้อาจใช้กับ |& ตัวดำเนินการร่วมสำหรับการสร้าง
การเชื่อมต่อเครือข่าย TCP/IP:

/ไอเน็ต/tcp/พอร์ต/โฮสต์/รายงาน
/inet4/tcp/พอร์ต/โฮสต์/รายงาน
/inet6/tcp/พอร์ต/โฮสต์/รายงาน
ไฟล์สำหรับการเชื่อมต่อ TCP/IP บนพอร์ตภายในเครื่อง พอร์ต ไปยังโฮสต์ระยะไกล โฮสต์ บนรีโมท
พอร์ต รายงาน. ใช้พอร์ตของ 0 เพื่อให้ระบบเลือกพอร์ต ใช้ /ไอเน็ต4 ที่จะบังคับให้
การเชื่อมต่อ IPv4 และ /ไอเน็ต6 เพื่อบังคับการเชื่อมต่อ IPv6 ที่ราบ /ไอเน็ต ใช้
ค่าเริ่มต้นของระบบ (น่าจะเป็น IPv4)

/ไอเน็ต/udp/พอร์ต/โฮสต์/รายงาน
/inet4/udp/พอร์ต/โฮสต์/รายงาน
/inet6/udp/พอร์ต/โฮสต์/รายงาน
คล้ายกัน แต่ใช้ UDP/IP แทน TCP/IP

เป็นตัวเลข ฟังก์ชั่น
AWK มีฟังก์ชันเลขคณิตในตัวดังต่อไปนี้:

อะตัน2(y, x) ส่งกลับอาร์คแทนเจนต์ของ y / x เป็นเรเดียน

cos (ด่วน) ส่งกลับโคไซน์ของ ด่วนซึ่งอยู่ในหน่วยเรเดียน

ประสบการณ์(ด่วน) ฟังก์ชันเลขชี้กำลัง

อินท์(ด่วน) ตัดทอนเป็นจำนวนเต็ม

บันทึก(ด่วน) ฟังก์ชันลอการิทึมธรรมชาติ

แรนด์() ส่งคืนหมายเลขสุ่ม Nระหว่าง 0 ถึง 1 ดังนั้น 0 ≤ N <1.

บาป(ด่วน) คืนค่าไซน์ของ ด่วนซึ่งอยู่ในหน่วยเรเดียน

ตารางวา(ด่วน) ส่งกลับรากที่สองของ ด่วน.

สแรนด์([ด่วน]) ใช้ ด่วน เป็นเมล็ดพันธุ์ใหม่สำหรับเครื่องกำเนิดตัวเลขสุ่ม ถ้าไม่ ด่วน is
ให้ใช้เวลาของวัน ส่งคืนเมล็ดพันธุ์ก่อนหน้าสำหรับการสุ่ม
เครื่องกำเนิดตัวเลข

เชือก ฟังก์ชั่น
ตะลึง มีฟังก์ชันสตริงในตัวต่อไปนี้:

สารพัน(s [, d [, อย่างไร-) ส่งกลับจำนวนองค์ประกอบในอาร์เรย์ต้นทาง s. เรียงลำดับ
เนื้อหาของ s การใช้ เพ่งพิศกฎปกติของการเปรียบเทียบค่าและ
แทนที่ดัชนีของค่าที่เรียงลำดับ s ด้วยลำดับ
จำนวนเต็มที่ขึ้นต้นด้วย 1 หากอาร์เรย์ปลายทางเป็นทางเลือก d is
ระบุ ซ้ำครั้งแรก s เข้าไป dแล้ว sort dออกจาก
ดัชนีของอาร์เรย์ต้นทาง s ไม่เปลี่ยนแปลง สตริงเสริม อย่างไร
ควบคุมทิศทางและโหมดการเปรียบเทียบ ค่าที่ถูกต้องสำหรับ
อย่างไร เป็นสตริงที่ถูกต้องสำหรับ PROCINFO["sorted_in"]. มัน
ยังสามารถเป็นชื่อของฟังก์ชันการเปรียบเทียบที่ผู้ใช้กำหนดเป็น
อธิบายไว้ใน PROCINFO["sorted_in"].

หลากหลาย (s [, d [, อย่างไร-)
ส่งกลับจำนวนองค์ประกอบในอาร์เรย์ต้นทาง s. พฤติกรรม
เป็นเช่นเดียวกับของ คละประเภท ()ยกเว้นว่าอาร์เรย์ ดัชนี เป็น
ใช้สำหรับการเรียงลำดับไม่ใช่ค่าอาร์เรย์ เมื่อเสร็จแล้วอาร์เรย์คือ
จัดทำดัชนีเป็นตัวเลขและค่าเป็นค่าของต้นฉบับ
ดัชนี ค่าเดิมจะหายไป จึงให้วินาที
array หากคุณต้องการเก็บต้นฉบับไว้ วัตถุประสงค์ของ
สตริงเสริม อย่างไร เหมือนกับที่อธิบายไว้ใน คละประเภท () ข้างบน.

เกนซับ(r, s, h [, t]) ค้นหาสตริงเป้าหมาย t สำหรับการจับคู่นิพจน์ทั่วไป
r. ถ้า h เป็นสตริงที่ขึ้นต้นด้วย g or Gแล้วแทนที่ทั้งหมด
การแข่งขันของ r กับ s. มิฉะนั้น, h เป็นตัวเลขที่บ่งบอกว่า
การแข่งขันของ r จะเข้ามาแทนที่. ถ้า t ไม่ได้ให้มา ใช้ $0 แทน.
ภายในข้อความแทนที่ s, ลำดับ \nที่นี่มี n เป็นตัวเลข
ตั้งแต่ 1 ถึง 9 อาจใช้ระบุเฉพาะข้อความที่ตรงกัน
n' นิพจน์ย่อยวงเล็บ ลำดับ \0 แสดงให้เห็นถึง
ข้อความที่ตรงกันทั้งหมด เช่นเดียวกับตัวอักษร &. แตกต่าง ย่อย ()
และ จีซับ()สตริงที่แก้ไขจะถูกส่งกลับเป็นผลของ
ฟังก์ชันและสตริงเป้าหมายเดิมคือ ไม่ การเปลี่ยนแปลง

จีซับ(r, s [, t]) สำหรับแต่ละสตริงย่อยที่ตรงกับนิพจน์ทั่วไป r ในสตริง
t, แทนที่สตริง sและส่งคืนหมายเลขของ
การทดแทน ถ้า t ไม่ได้ให้มา ใช้ $0. & ใน
ข้อความแทนที่จะถูกแทนที่ด้วยข้อความที่เป็นจริง
ตรงกัน ใช้ \& เพื่อให้ได้ตัวอักษร &. (ต้องพิมพ์ว่า
"\\&"; ดู อ้าปากค้าง: มีประสิทธิภาพ AWK การเขียนโปรแกรม เพื่อการสนทนาที่สมบูรณ์ยิ่งขึ้น
ของกฎสำหรับ &และแบ็กสแลชในข้อความแทนที่ของ
ย่อย (), จีซับ()และ เจนซับ().)

ดัชนี(s, t) ส่งกลับดัชนีของสตริง t ในสตริง s, หรือ 0 if t ไม่ใช่
ปัจจุบัน. (นี่หมายความว่าดัชนีอักขระเริ่มต้นที่หนึ่ง) It
เป็นข้อผิดพลาดร้ายแรงในการใช้ค่าคงที่ regexp for t.

ความยาว([s]) ส่งกลับความยาวของสตริง s, หรือความยาวของ $0 if s ไม่ใช่
ที่ให้มา เป็นส่วนขยายที่ไม่ได้มาตรฐาน โดยมีอาร์กิวเมนต์อาร์เรย์
ระยะเวลา() ส่งกลับจำนวนองค์ประกอบในอาร์เรย์

จับคู่(s, r [, a]) คืนตำแหน่งใน s โดยที่นิพจน์ทั่วไป r เกิดขึ้นหรือ
0 ถ้า r ไม่มีอยู่และตั้งค่าของ เริ่มต้นใหม่ และ ความยาว.
โปรดทราบว่าลำดับอาร์กิวเมนต์เหมือนกับสำหรับ ~ โอเปอเรเตอร์:
Str ~ re. ถ้าอาร์เรย์ a มีให้ a ถูกล้างแล้วองค์ประกอบ
1 ถึง n เต็มไปด้วยส่วนของ s ที่ตรงกับ
นิพจน์ย่อยวงเล็บที่สอดคล้องกันใน r. องค์ประกอบที่ 0'
of a ประกอบด้วยส่วนของ s เข้าคู่กับขาประจำ
การแสดงออก r. สมัครสมาชิก a[n, "เริ่ม"]และ a[n, "ระยะเวลา"]
ระบุดัชนีเริ่มต้นในสตริงและความยาวตามลำดับ
ของแต่ละสตริงย่อยที่ตรงกัน

แพทสปลิต(s, a [, r [, Seps-)
แยกสตริง s ลงในอาร์เรย์ a และอาเรย์ตัวคั่น Seps
ในนิพจน์ทั่วไป rและส่งคืนจำนวนฟิลด์
ค่าองค์ประกอบเป็นส่วนหนึ่งของ s ที่เข้าคู่กัน r. คุณค่าของ
ก.ย.[i] เป็นตัวคั่นที่ปรากฏอยู่ข้างหน้า a[i+1]. ถ้า r
ถูกละเว้น ป.ป.ช มาใช้แทน อาร์เรย์ a และ Seps เป็น
เคลียร์ก่อน การแยกมีลักษณะเหมือนกับการแยกเขตข้อมูล
กับ ป.ป.ช, อธิบายไว้ข้างต้น.

แยก(s, a [, r [, Seps-)
แยกสตริง s ลงในอาร์เรย์ a และอาเรย์ตัวคั่น Seps
ในนิพจน์ทั่วไป rและส่งคืนจำนวนฟิลด์ ถ้า
r ถูกละเว้น FS มาใช้แทน อาร์เรย์ a และ Seps เป็น
เคลียร์ก่อน ก.ย.[i] เป็นตัวคั่นฟิลด์ที่จับคู่โดย r
ระหว่าง a[i] และ a[i+1]. ถ้า r เป็นช่องว่างเดียวแล้วนำ
ช่องว่างใน s เข้าไปในองค์ประกอบอาร์เรย์พิเศษ ก.ย.[0] และ
ช่องว่างต่อท้ายจะเข้าสู่องค์ประกอบอาร์เรย์พิเศษ ก.ย.[n],
ที่ไหน n เป็นค่าส่งคืนของ แยก(s, a, r, Seps). แยก
มีลักษณะการทำงานเหมือนกับการแยกฟิลด์ ดังที่อธิบายไว้ข้างต้น

sprintf (เอฟเอ็มที, รายการ expr) พิมพ์ รายการ expr ตาม เอฟเอ็มทีและส่งคืนสตริงผลลัพธ์

สตรอนนัม(Str) ตรวจสอบ Strและคืนค่าเป็นตัวเลข ถ้า Str เริ่มต้นด้วย
ชั้นนำ 0, ถือว่าเป็นเลขฐานแปด ถ้า Str เริ่มต้นด้วย
ชั้นนำ 0x or 0X, ถือเป็นเลขฐานสิบหก มิฉะนั้น,
ถือว่ามันเป็นเลขฐานสิบ

ย่อย (r, s [, t]) เช่นเดียวกับ จีซับ()แต่แทนที่เฉพาะสตริงย่อยที่ตรงกันแรกเท่านั้น

ย่อย (s, i [, n]) คืนสูงสุด n- สตริงย่อยอักขระของ s เริ่มต้นที่ i. ถ้า n
ละไว้ ใช้ส่วนที่เหลือของ s.

ทาวเวอร์ (Str) ส่งคืนสำเนาของสตริง Str, ด้วยตัวพิมพ์ใหญ่ทั้งหมด
in Str แปลเป็นภาษาตัวพิมพ์เล็กที่สอดคล้องกัน
อักขระที่ไม่ใช่ตัวอักษรจะไม่เปลี่ยนแปลง

ท็อปเปอร์(Str) ส่งคืนสำเนาของสตริง Str, ด้วยอักษรตัวพิมพ์เล็กทั้งหมด
in Str แปลเป็นตัวพิมพ์ใหญ่ที่สอดคล้องกัน
อักขระที่ไม่ใช่ตัวอักษรจะไม่เปลี่ยนแปลง

ตะลึง เป็น multibyte ทราบ หมายความว่า ดัชนี(), ระยะเวลา(), ย่อย () และ จับคู่() ทำงานทั้งหมด
ในแง่ของอักขระไม่ใช่ไบต์

เวลา ฟังก์ชั่น
เนื่องจากหนึ่งในการใช้งานหลักของโปรแกรม AWK คือการประมวลผลไฟล์บันทึกที่มีเวลา
ข้อมูลแสตมป์ เพ่งพิศ มีฟังก์ชันต่อไปนี้สำหรับการรับการประทับเวลาและ
การจัดรูปแบบพวกเขา

เอ็มเคไทม์(วันที่)
เลี้ยว วันที่ ลงในตราประทับเวลาแบบเดียวกับที่ส่งกลับโดย ระบบ ()และ
ส่งคืนผลลัพธ์ ดิ วันที่ เป็นสตริงของรูปแบบ ปปปป MM DD HH MM เอสเอส[
ดีเอสที]. เนื้อหาของสตริงเป็นตัวเลขหกหรือเจ็ดแทน
ตามลำดับทั้งปีรวมทั้งศตวรรษ, เดือนตั้งแต่ 1 ถึง 12, วันที่
เดือนตั้งแต่ 1 ถึง 31 ชั่วโมงของวันตั้งแต่ 0 ถึง 23 นาทีจาก 0 ถึง
59 วินาที จาก 0 ถึง 60 และแฟล็กการออมแสงที่เป็นตัวเลือก ค่า
ของตัวเลขเหล่านี้ไม่จำเป็นต้องอยู่ในช่วงที่ระบุ เช่น หนึ่งชั่วโมง
ของ -1 หมายถึง 1 ชั่วโมงก่อนเที่ยงคืน ปฏิทินเกรกอเรียนศูนย์ต้นทางคือ
สมมติโดยปีที่ 0 ก่อนปีที่ 1 และปีที่ -1 ก่อนปีที่ 0 เวลาคือ
ถือว่าอยู่ในเขตเวลาท้องถิ่น หากค่าสถานะออมแสงเป็นค่าบวก
เวลาจะถือว่าเป็นเวลาออมแสง ถ้าศูนย์ เวลาจะถือว่า
เป็นเวลามาตรฐาน และถ้าเป็นค่าลบ (ค่าดีฟอลต์) เอ็มเคไทม์() พยายามที่จะกำหนด
เวลาออมแสงมีผลบังคับตามเวลาที่กำหนดหรือไม่ ถ้า วันที่
มีองค์ประกอบไม่เพียงพอหรือหากเวลาผลลัพธ์อยู่นอกช่วง
เอ็มเคไทม์() ผลตอบแทน -1

สตริฟไทม์([รูป [, การประทับเวลา[, utc-ธง-)
รูปแบบ การประทับเวลา ตามข้อกำหนดใน รูป. ถ้า utc-ธง is
ปัจจุบันและไม่เป็นศูนย์หรือไม่เป็นโมฆะ ผลลัพธ์อยู่ใน UTC มิฉะนั้นผลลัพธ์
เป็นเวลาท้องถิ่น ดิ การประทับเวลา ควรอยู่ในรูปแบบเดียวกับที่ส่งคืนโดย
ระบบ (). ถ้า การประทับเวลา หายไป ใช้เวลาปัจจุบันของวัน ถ้า รูป
หายไป รูปแบบเริ่มต้นเทียบเท่ากับผลลัพธ์ของ ข้อมูล(1) ถูกใช้ ดิ
รูปแบบเริ่มต้นมีอยู่ใน โปรซินโฟ["strftime"]. ดูข้อมูลจำเพาะสำหรับ
สตริฟไทม์() ฟังก์ชันใน ISO C สำหรับการแปลงรูปแบบที่รับประกัน
จะสามารถใช้ได้.

ระบบ () คืนค่าเวลาปัจจุบันของวันเป็นจำนวนวินาทีนับตั้งแต่ยุค
(1970-01-01 00:00:00 UTC บนระบบ POSIX)

บิต กิจวัตร ฟังก์ชั่น
ตะลึง จัดเตรียมฟังก์ชันการจัดการบิตต่อไปนี้ พวกเขาทำงานโดยแปลงเป็นสองเท่า
ค่าจุดลอยตัวที่แม่นยำถึง uintmax_t จำนวนเต็ม ดำเนินการ แล้ว
แปลงผลลัพธ์กลับเป็นจุดลอยตัว ฟังก์ชั่นคือ:

และ(v1, v2 [, ... ]) ส่งกลับค่าบิตและของค่าที่ระบุในรายการอาร์กิวเมนต์
ต้องมีอย่างน้อยสอง

ปฏิบัติตาม (คลื่น) ส่งคืนส่วนเติมเต็มระดับบิตของ คลื่น.

ลชิฟต์(คลื่น, นับ) ส่งคืนค่าของ คลื่น, ชิดซ้ายโดย นับ เกร็ด

หรือ(v1, v2 [, ... ]) ส่งกลับค่าบิต OR ของค่าที่ระบุในรายการอาร์กิวเมนต์
ต้องมีอย่างน้อยสอง

กะ(คลื่น, นับ) ส่งคืนค่าของ คลื่น, ชิดขวาโดย นับ เกร็ด

xor (v1, v2 [, ... ]) ส่งกลับค่า XOR ระดับบิตของค่าที่ระบุในรายการอาร์กิวเมนต์
ต้องมีอย่างน้อยสอง

ชนิดภาพเขียน ฟังก์ชัน
ฟังก์ชันต่อไปนี้ใช้สำหรับอาร์เรย์หลายมิติ

isarray (x)
คืนค่าจริง if x เป็นอาร์เรย์ มิฉะนั้น เท็จ

สากล ฟังก์ชั่น
ฟังก์ชันต่อไปนี้อาจใช้จากภายในโปรแกรม AWK ของคุณเพื่อแปลสตริง
ที่รันไทม์ ดูรายละเอียดได้ที่ อ้าปากค้าง: มีประสิทธิภาพ AWK การเขียนโปรแกรม.

โดเมนข้อความผูก (ไดเรกทอรี [, โดเมน])
ระบุไดเร็กทอรีโดยที่ เพ่งพิศ มองหา .จีเอ็มโอ ไฟล์ในกรณีที่พวกเขาจะไม่หรือ
ไม่สามารถวางในตำแหน่ง ``มาตรฐาน'' (เช่น ระหว่างการทดสอบ) มันกลับมา
ไดเรกทอรีที่ โดเมน ถูก `` ผูกพัน''
ค่าดีฟอลต์ โดเมน เป็นค่าของ ข้อความ. ถ้า ไดเรกทอรี เป็นสตริงว่าง
("") แล้ว โดเมนข้อความ () ส่งคืนการผูกปัจจุบันสำหรับที่กำหนด โดเมน.

dcgettext(เชือก [, โดเมน [, หมวดหมู่]])
ส่งกลับคำแปลของ เชือก ในโดเมนข้อความ โดเมน สำหรับหมวดหมู่สถานที่
หมวดหมู่. ค่าเริ่มต้นสำหรับ โดเมน คือมูลค่าปัจจุบันของ ข้อความ.
ค่าเริ่มต้นสำหรับ หมวดหมู่ is "LC_MESSAGES".
หากคุณระบุค่าสำหรับ หมวดหมู่จะต้องเป็นสตริงที่เท่ากับค่าที่รู้จักตัวใดตัวหนึ่ง
หมวดหมู่สถานที่ที่อธิบายไว้ใน อ้าปากค้าง: มีประสิทธิภาพ AWK การเขียนโปรแกรม. ยังต้อง
จัดหาโดเมนข้อความ ใช้ ข้อความ หากคุณต้องการใช้โดเมนปัจจุบัน

dcngettext(string1, string2, จำนวน [, โดเมน [, หมวดหมู่]])
ส่งกลับรูปพหูพจน์ที่ใช้สำหรับ จำนวน ของคำแปลของ string1 และ string2 in
โดเมนข้อความ โดเมน สำหรับหมวดหมู่สถานที่ หมวดหมู่. ค่าเริ่มต้นสำหรับ โดเมน is
มูลค่าปัจจุบันของ ข้อความ. ค่าเริ่มต้นสำหรับ หมวดหมู่ is "LC_MESSAGES".
หากคุณระบุค่าสำหรับ หมวดหมู่จะต้องเป็นสตริงที่เท่ากับค่าที่รู้จักตัวใดตัวหนึ่ง
หมวดหมู่สถานที่ที่อธิบายไว้ใน อ้าปากค้าง: มีประสิทธิภาพ AWK การเขียนโปรแกรม. ยังต้อง
จัดหาโดเมนข้อความ ใช้ ข้อความ หากคุณต้องการใช้โดเมนปัจจุบัน

ผู้ใช้กำหนด ฟังก์ชั่น


ฟังก์ชันใน AWK ถูกกำหนดดังนี้:

ฟังก์ชัน ชื่อ(พารามิเตอร์ รายการ) { งบ }

ฟังก์ชั่นจะถูกดำเนินการเมื่อถูกเรียกจากภายในนิพจน์ในรูปแบบใดรูปแบบหนึ่งหรือ
การกระทำ พารามิเตอร์จริงที่ให้มาในการเรียกใช้ฟังก์ชันถูกใช้เพื่อสร้างอินสแตนซ์
พารามิเตอร์ที่เป็นทางการประกาศในฟังก์ชัน อาร์เรย์ถูกส่งผ่านโดยการอ้างอิง อื่นๆ
ตัวแปรจะถูกส่งผ่านตามค่า

เนื่องจากแต่เดิมฟังก์ชันไม่ได้เป็นส่วนหนึ่งของภาษา AWK บทบัญญัติสำหรับ local
ตัวแปรค่อนข้างงุ่มง่าม: พวกมันถูกประกาศเป็นพารามิเตอร์พิเศษในรายการพารามิเตอร์
แบบแผนคือการแยกตัวแปรท้องถิ่นออกจากพารามิเตอร์จริงด้วยช่องว่างพิเศษใน
รายการพารามิเตอร์ ตัวอย่างเช่น:

ฟังก์ชัน ฉ(หน้า, q, a, b) # a และ b เป็น ในประเทศ
{
...
}

/เอบีซี/ { ... ; ฉ(1, 2) ; ... }

วงเล็บซ้ายในการเรียกใช้ฟังก์ชันจำเป็นต้องติดตามฟังก์ชันทันที
ชื่อโดยไม่มีช่องว่างใด ๆ แทรกแซง สิ่งนี้จะหลีกเลี่ยงความกำกวมทางวากยสัมพันธ์กับ
ตัวดำเนินการต่อ ข้อจำกัดนี้ใช้ไม่ได้กับฟังก์ชันในตัวที่แสดง
ข้างบน.

ฟังก์ชันอาจเรียกกันและอาจเรียกซ้ำ พารามิเตอร์ของฟังก์ชันที่ใช้เป็น local
ตัวแปรเริ่มต้นเป็นสตริงว่างและตัวเลขศูนย์เมื่อเรียกใช้ฟังก์ชัน

ใช้ กลับ ด่วน เพื่อคืนค่าจากฟังก์ชัน ค่าที่ส่งกลับไม่ได้กำหนดไว้ถ้าไม่มี
มีการจัดเตรียมค่าไว้หรือหากฟังก์ชันส่งคืนโดย "falling off" จุดสิ้นสุด

ในฐานะที่เป็น เพ่งพิศ ส่วนขยาย ฟังก์ชันอาจถูกเรียกโดยอ้อม เมื่อต้องการทำสิ่งนี้ ให้กำหนดชื่อของ
ฟังก์ชั่นที่จะเรียกเป็นสตริงไปยังตัวแปร จากนั้นใช้ตัวแปรเหมือนกับว่า
เป็นชื่อของฟังก์ชัน นำหน้าด้วย an @ ลงชื่อเช่นนั้น:
ฟังก์ชัน มายฟังค์()
{
พิมพ์ "มายฟังก์ เรียกว่า"
...
}

{ ...
the_func = "มายฟังก์"
@the_func() # โทรศัพท์ ตลอด the_func ไปยัง มายฟังก์
...
}
ในเวอร์ชัน 4.1.2 ฟังก์ชันนี้ใช้ได้กับฟังก์ชันที่ผู้ใช้กำหนดเอง ฟังก์ชันในตัว และ
ฟังก์ชันส่วนขยาย

If --ผ้าสำลี ได้จัดให้ เพ่งพิศ เตือนเกี่ยวกับการเรียกใช้ฟังก์ชันที่ไม่ได้กำหนดในเวลาแยกวิเคราะห์
แทนเวลาทำงาน การเรียกใช้ฟังก์ชันที่ไม่ได้กำหนดในขณะใช้งานถือเป็นข้อผิดพลาดร้ายแรง

คำ ฟังก์ชั่น อาจใช้แทน ฟังก์ชันแม้ว่าจะเลิกใช้แล้วก็ตาม

ไดนามิก กำลังโหลด NEW ฟังก์ชั่น


คุณสามารถเพิ่มฟังก์ชันในตัวแบบไดนามิกให้กับการวิ่งได้ เพ่งพิศ ล่ามด้วย
@โหลด คำให้การ. รายละเอียดทั้งหมดอยู่นอกเหนือขอบเขตของหน้าคู่มือนี้ ดู อ้าปากค้าง:
มีประสิทธิภาพ AWK การเขียนโปรแกรม.

สัญญาณ


พื้นที่ เพ่งพิศ profiler ยอมรับสองสัญญาณ ซิกุสร์1 ทำให้มันดัมพ์โปรไฟล์และฟังก์ชั่น
call stack ไปยังไฟล์โปรไฟล์ซึ่งก็คือ awkprof.out, หรือชื่อไฟล์อะไรก็ตาม
กับ --ข้อมูลส่วนตัว ตัวเลือก. จากนั้นมันก็วิ่งต่อไป ซิกอัพ สาเหตุที่ เพ่งพิศ ที่จะทิ้ง
profile และ function call stack จากนั้นออก

ความเป็นสากล


ค่าคงที่สตริงคือลำดับของอักขระที่อยู่ในเครื่องหมายคำพูดคู่ ที่ไม่ใช่ภาษาอังกฤษ
สภาพแวดล้อมในการพูด เป็นไปได้ที่จะทำเครื่องหมายสตริงในโปรแกรม AWK ว่าต้องการ
แปลเป็นภาษาธรรมชาติในท้องถิ่น สตริงดังกล่าวถูกทำเครื่องหมายในโปรแกรม AWK ด้วย
ขีดล่างชั้นนำ (“_”) ตัวอย่างเช่น,

เพ่งพิศ 'เริ่ม { พิมพ์ "สวัสดี, โลก" }'

พิมพ์เสมอ สวัสดี, โลก. แต่,

เพ่งพิศ 'เริ่ม { พิมพ์ _"สวัสดี, โลก" }'

อาจพิมพ์ Bonjour, Monde ในประเทศฝรั่งเศส.

มีหลายขั้นตอนที่เกี่ยวข้องในการผลิตและรันโปรแกรม AWK ที่แปลได้

1 เพิ่ม เริ่ม การกระทำเพื่อกำหนดค่าให้กับ ข้อความ ตัวแปรเพื่อตั้งค่าโดเมนข้อความ
เป็นชื่อที่เกี่ยวข้องกับโปรแกรมของคุณ:

เริ่ม { ข้อความ = "มายโปรก" }

สิ่งนี้ช่วยให้ เพ่งพิศ เพื่อหา .จีเอ็มโอ ไฟล์ที่เกี่ยวข้องกับโปรแกรมของคุณ ไม่มีสิ่งนี้
ขั้นตอน เพ่งพิศ ใช้ ข้อความ โดเมนข้อความซึ่งไม่น่าจะมีการแปล
สำหรับโปรแกรมของคุณ

2. ทำเครื่องหมายสตริงทั้งหมดที่ควรแปลด้วยขีดล่างนำหน้า

3. หากจำเป็น ให้ใช้ปุ่ม dgettext() และ / หรือ โดเมนข้อความ () ฟังก์ชันในโปรแกรมของคุณ
ตามความเหมาะสม.

4 วิ่ง เพ่งพิศ --gen-หม้อ -f myprog.awk > myprog.pot เพื่อสร้าง a .หม้อ ไฟล์สำหรับไฟล์
โครงการ

5. จัดให้มีการแปลที่เหมาะสม และสร้างและติดตั้ง the .จีเอ็มโอ ไฟล์

คุณสมบัติความเป็นสากลได้อธิบายไว้อย่างละเอียดใน อ้าปากค้าง: มีประสิทธิภาพ AWK
การเขียนโปรแกรม.

POSIX ความเข้ากันได้


เป้าหมายหลักสำหรับ เพ่งพิศ เข้ากันได้กับมาตรฐาน POSIX เช่นเดียวกับ
เวอร์ชันล่าสุดของ Brian Kernighan's awk. เพื่อการนี้ เพ่งพิศ ประกอบด้วยสิ่งต่อไปนี้
คุณลักษณะที่ผู้ใช้มองเห็นได้ซึ่งไม่ได้อธิบายไว้ในหนังสือ AWK แต่เป็นส่วนหนึ่งของ Brian
เวอร์ชั่นของ Kernighan ของ awkและอยู่ในมาตรฐาน POSIX

หนังสือระบุว่าการกำหนดตัวแปรบรรทัดคำสั่งเกิดขึ้นเมื่อ awk จะเป็นอย่างอื่น
เปิดอาร์กิวเมนต์เป็นไฟล์ซึ่งอยู่หลัง เริ่ม กฎถูกดำเนินการ อย่างไรก็ตาม ใน
การใช้งานก่อนหน้านี้เมื่อการมอบหมายดังกล่าวปรากฏก่อนชื่อไฟล์ใด ๆ
การมอบหมายจะเกิดขึ้น ก่อน เริ่ม กฎถูกเรียกใช้ แอปพลิเคชันมาขึ้นอยู่กับ
“คุณสมบัติ” นี้ เมื่อไหร่ awk ถูกเปลี่ยนให้ตรงกับเอกสารประกอบการ -v ตัวเลือกสำหรับ
กำหนดตัวแปรก่อนเพิ่มการทำงานของโปรแกรมเพื่อรองรับแอพพลิเคชั่นที่
ขึ้นอยู่กับพฤติกรรมเก่า (คุณลักษณะนี้ได้รับการตกลงโดย Bell
ห้องปฏิบัติการและนักพัฒนา GNU)

เมื่อประมวลผลข้อโต้แย้ง เพ่งพิศ ใช้ตัวเลือกพิเศษ “--” เพื่อส่งสัญญาณการสิ้นสุดของ
อาร์กิวเมนต์ ในโหมดความเข้ากันได้ จะเตือนแต่จะละเว้นตัวเลือกที่ไม่ได้กำหนดไว้
ในการทำงานปกติ อาร์กิวเมนต์ดังกล่าวจะถูกส่งต่อไปยังโปรแกรม AWK เพื่อให้ประมวลผลได้

หนังสือ AWK ไม่ได้กำหนดมูลค่าส่งกลับของ sran(). มาตรฐาน POSIX ก็มี
ส่งคืนเมล็ดพันธุ์ที่ใช้เพื่อให้ติดตามลำดับตัวเลขสุ่ม
ดังนั้น sran() in เพ่งพิศ ส่งคืนเมล็ดพันธุ์ปัจจุบันด้วย

คุณสมบัติใหม่อื่น ๆ ได้แก่: การใช้multi -f ตัวเลือก (จาก MKS awk); สิ่งแวดล้อม อาร์เรย์;
\aและ \v ลำดับการหลบหนี (ทำแต่เดิมใน เพ่งพิศ และป้อนกลับเข้าไปในระฆัง
รุ่นห้องปฏิบัติการ); ที่ ทาวเวอร์ () และ ท็อปเปอร์() ฟังก์ชั่นในตัว (จาก Bell
รุ่นห้องปฏิบัติการ); และข้อกำหนดการแปลง ISO C ใน printf (ทำครั้งแรกใน
เวอร์ชันของ Bell Laboratories)

ประวัติศาสตร์ คุณลักษณะเด่น


มีคุณลักษณะหนึ่งของการนำ AWK ไปใช้ในอดีตที่ เพ่งพิศ รองรับ: เป็นไปได้
เพื่อโทร ระยะเวลา() ฟังก์ชันในตัวไม่เพียงแต่ไม่มีอาร์กิวเมนต์แต่ไม่มี
วงเล็บ! ดังนั้น,

a = ความยาว # ศักดิ์สิทธิ์ อัลกอล 60, แบทแมน!

เหมือนกับอย่างใดอย่างหนึ่งของ

a = ระยะเวลา()
a = ความยาว($0)

การใช้คุณสมบัตินี้เป็นแนวปฏิบัติที่ไม่ดี และ เพ่งพิศ ออกคำเตือนเกี่ยวกับการใช้งาน if --ผ้าสำลี is
ระบุไว้ในบรรทัดคำสั่ง

GNU ส่วนขยาย


ตะลึง มีส่วนขยายจำนวนมากเกินไปสำหรับ POSIX awk. มีอธิบายไว้ในนี้
ส่วน. ส่วนขยายทั้งหมดที่อธิบายไว้ที่นี่สามารถปิดใช้งานได้โดยเรียกใช้ เพ่งพิศ กับ
--แบบดั้งเดิม or --posix ตัวเลือก

คุณสมบัติดังต่อไปนี้ของ เพ่งพิศ ไม่มีใน POSIX awk.

· ไม่มีการค้นหาพาธสำหรับไฟล์ที่มีชื่อผ่าน the -f ตัวเลือก. ดังนั้น อั๊กพัทธ์
ตัวแปรสภาพแวดล้อมไม่ได้พิเศษ

· ไม่มีสิ่งอำนวยความสะดวกในการรวมไฟล์ (เพ่งพิศ's @รวม กลไก).

· ไม่มีสิ่งอำนวยความสะดวกสำหรับการเพิ่มฟังก์ชันใหม่ที่เขียนด้วยภาษา C (เพ่งพิศ's @โหลด
กลไก).

· \x ลำดับการหลบหนี (พิการด้วย --posix.)

·ความสามารถในการต่อสายหลังจาก ? และ :. (พิการด้วย --posix.)

· ค่าคงที่ฐานแปดและฐานสิบหกในโปรแกรม AWK

· อาร์จินด์, บินโหมด, เออร์โน่, ผ้าสำลี, RT และ ข้อความ ตัวแปรไม่ได้พิเศษ

· ละเว้น ตัวแปรและผลข้างเคียงไม่สามารถใช้ได้

· สนาม การแยกฟิลด์ตัวแปรและความกว้างคงที่

· ป.ป.ช การแยกตัวแปรและฟิลด์ตามค่าฟิลด์

· โปรซินโฟ อาร์เรย์ไม่พร้อมใช้งาน

· การใช้ RS เป็นนิพจน์ทั่วไป

· ไม่รู้จักชื่อไฟล์พิเศษสำหรับการเปลี่ยนเส้นทาง I/O

· |& โอเปอเรเตอร์สำหรับสร้างกระบวนการร่วม

· เริ่มต้น และ สิ้นสุด ไม่มีรูปแบบพิเศษ

· ความสามารถในการแยกอักขระแต่ละตัวโดยใช้สตริงว่างเป็นค่าของ FS,
และเป็นข้อโต้แย้งที่สามถึง แยก ().

· อาร์กิวเมนต์ที่สี่ทางเลือกถึง แยก () เพื่อรับข้อความคั่น

· อาร์กิวเมนต์ที่สองที่เป็นทางเลือกสำหรับ ปิด() ฟังก์ชัน

· อาร์กิวเมนต์ที่สามที่เป็นตัวเลือกสำหรับ จับคู่() ฟังก์ชัน

· ความสามารถในการใช้ตัวระบุตำแหน่งด้วย printf และ วิ่ง().

· ความสามารถในการส่งผ่านอาร์เรย์ไปยัง ระยะเวลา().

· และ(), คละประเภท (), หลากหลาย(), โดเมนข้อความ (), คอมพ์(), dgettext(), dcgettext(),
เจนซับ(), กะ(), เอ็มเคไทม์(), หรือ(), แพทสปลิต(), ชิฟต์(), สตริฟไทม์(), สตรอนนัม(),
ระบบ () และ เอ็กซ์ออร์() ฟังก์ชั่น

· สตริงที่แปลได้

หนังสือ AWK ไม่ได้กำหนดมูลค่าส่งกลับของ ปิด() ฟังก์ชัน ตะลึง's ปิด()
ส่งคืนค่าจาก ปิด(3) หรือ ปิด(3) เมื่อปิดไฟล์เอาต์พุตหรือไพพ์
ตามลำดับ ส่งคืนสถานะการออกของกระบวนการเมื่อปิดไพพ์อินพุต ดิ
ค่าที่ส่งคืนคือ -1 หากไฟล์ที่มีชื่อ ไปป์ หรือกระบวนการร่วมไม่ได้เปิดด้วยa
การเปลี่ยนเส้นทาง

เมื่อ เพ่งพิศ ถูกเรียกด้วย --แบบดั้งเดิม ตัวเลือก ถ้า fs อาร์กิวเมนต์เพื่อ -F ตัวเลือกที่
“t” แล้ว FS ถูกตั้งค่าเป็นอักขระแท็บ โปรดทราบว่าการพิมพ์ เพ่งพิศ -ฉ\t ... สาเหตุง่ายๆ
เปลือกเพื่ออ้าง "t" และไม่ผ่าน "\t" ไปยัง -F ตัวเลือก. เนื่องจากนี่คือ
กรณีพิเศษที่ค่อนข้างน่าเกลียด มันไม่ใช่พฤติกรรมเริ่มต้น พฤติกรรมนี้ก็ไม่เช่นกัน
เกิดขึ้นถ้า --posix ได้รับการระบุ เพื่อให้ได้อักขระแท็บเป็นฟิลด์จริงๆ
ตัวคั่น ควรใช้เครื่องหมายคำพูดเดี่ยว: เพ่งพิศ -F'\t' ....

และพวกเรา ตัวแปร


พื้นที่ อั๊กพัทธ์ ตัวแปรสภาพแวดล้อมสามารถใช้เพื่อให้รายการของไดเร็กทอรีที่ เพ่งพิศ
ค้นหาเมื่อค้นหาไฟล์ที่มีชื่อผ่านทาง -f, --ไฟล์, -i และ --รวม ตัวเลือก. ถ้า
การค้นหาเริ่มต้นล้มเหลว ระบบจะค้นหาเส้นทางอีกครั้งหลังจากต่อท้าย .awk ไปที่ชื่อไฟล์

พื้นที่ อวกลิบพาธ ตัวแปรสภาพแวดล้อมสามารถใช้เพื่อให้รายการของไดเร็กทอรีที่ เพ่งพิศ
ค้นหาเมื่อค้นหาไฟล์ที่มีชื่อผ่านทาง -l และ --โหลด ตัวเลือก

พื้นที่ GAWK_READ_TIMEOUT ตัวแปรสภาพแวดล้อมสามารถใช้เพื่อระบุการหมดเวลาใน
มิลลิวินาทีสำหรับการอ่านอินพุตจากเทอร์มินัล ไปป์ หรือการสื่อสารแบบสองทางรวมถึง
ซ็อกเก็ต

สำหรับการเชื่อมต่อกับโฮสต์ระยะไกลผ่านซ็อกเก็ต GAWK_SOCK_RETIES ควบคุมจำนวน
ลองใหม่อีกครั้งและ GAWK_MSEC_SLEEP และช่วงเวลาระหว่างการลองใหม่ ช่วงเวลาอยู่ใน
มิลลิวินาที บนระบบที่ไม่รองรับ หลับ(3) ค่าจะถูกปัดขึ้นเป็น an
จำนวนวินาที

If POSIXLY_CORRECT ที่มีอยู่ในสิ่งแวดล้อมแล้ว เพ่งพิศ ทำตัวเหมือนกับว่า --posix มี
ระบุไว้ในบรรทัดคำสั่ง ถ้า --ผ้าสำลี ได้รับการระบุ, เพ่งพิศ ออกคำเตือน
ข้อความถึงผลกระทบนี้

EXIT สถานภาพ


ถ้า ทางออก คำสั่งใช้กับค่า แล้ว เพ่งพิศ ออกด้วยค่าตัวเลขที่กำหนด
เพื่อมัน

มิฉะนั้น หากไม่มีปัญหาระหว่างการดำเนินการ เพ่งพิศ ออกด้วยค่าของC
คงที่ ทางออก_ความสำเร็จ. ซึ่งมักจะเป็นศูนย์

หากเกิดข้อผิดพลาด เพ่งพิศ ออกด้วยค่าของค่าคงที่ C EXIT_FAILURE. นี่คือ
มักจะหนึ่ง

If เพ่งพิศ ออกเนื่องจากข้อผิดพลาดร้ายแรง สถานะการออกคือ 2 บนระบบที่ไม่ใช่ POSIX สิ่งนี้
ค่าอาจถูกแมปกับ EXIT_FAILURE.

VERSION ข้อมูล


เอกสาร man หน้านี้ เพ่งพิศ, รุ่น 4.1

ผู้เขียน


UNIX . เวอร์ชันดั้งเดิม awk ได้รับการออกแบบและดำเนินการโดย Alfred Aho, Peter
Weinberger และ Brian Kernighan จาก Bell Laboratories Brian Kernighan ยังคง
รักษาและปรับปรุงมัน

Paul Rubin และ Jay Fenlason จาก Free Software Foundation เขียนว่า เพ่งพิศเข้ากันได้
กับเวอร์ชั่นดั้งเดิมของ awk เผยแพร่ใน UNIX รุ่นที่เจ็ด จอห์น วูดส์
มีส่วนในการแก้ไขข้อผิดพลาดหลายอย่าง David Trueman ด้วยผลงานจาก Arnold Robbins
ทำ เพ่งพิศ เข้ากันได้กับ UNIX . เวอร์ชันใหม่ awk. Arnold Robbins คือปัจจุบัน
ผู้ดูแล

ดู อ้าปากค้าง: มีประสิทธิภาพ AWK การเขียนโปรแกรม สำหรับรายชื่อผู้ร่วมสมทบทั้งหมดเพื่อ เพ่งพิศ และมัน
เอกสาร

ดู README แฟ้มใน เพ่งพิศ แจกจ่ายข้อมูลล่าสุดเกี่ยวกับผู้ดูแล
และพอร์ตใดที่รองรับในปัจจุบัน

BUG รายงาน


หากคุณพบข้อผิดพลาดใน เพ่งพิศ, กรุณาส่งจดหมายอิเล็กทรอนิกส์มาที่ [ป้องกันอีเมล]. กรุณา
รวมระบบปฏิบัติการของคุณและการแก้ไขเวอร์ชันของ เพ่งพิศ (จาก เพ่งพิศ --รุ่น),
คอมไพเลอร์ C ตัวใดที่คุณใช้ในการคอมไพล์และทดสอบโปรแกรมและข้อมูลที่มีขนาดเล็กเท่า
เป็นไปได้ที่จะทำซ้ำปัญหา

ก่อนส่งรายงานข้อบกพร่อง โปรดทำสิ่งต่อไปนี้ ขั้นแรก ตรวจสอบว่าคุณมี
รุ่นล่าสุดของ เพ่งพิศ. ข้อบกพร่องมากมาย (มักจะเป็นข้อบกพร่องที่ละเอียดอ่อน) ได้รับการแก้ไขในแต่ละรุ่น
และหากของคุณล้าสมัย ปัญหาอาจได้รับการแก้ไขแล้ว ประการที่สองโปรดดู
ถ้าตั้งค่าตัวแปรสภาพแวดล้อม LC_ALL ไปยัง LC_ALL=ซี ทำให้สิ่งต่าง ๆ ประพฤติตามคุณ
คาดหวัง. หากเป็นเช่นนั้น เป็นปัญหาด้านสถานที่ และอาจเป็นจุดบกพร่องหรือไม่ก็ได้ สุดท้ายนี้ ได้โปรด
อ่านหน้านี้และคู่มืออ้างอิงอย่างละเอียดเพื่อให้แน่ใจว่าสิ่งที่คุณคิดว่าเป็น
ข้อผิดพลาดจริงๆ แทนที่จะเป็นเพียงแค่มุมแหลมในภาษา

ทำอะไรก็ทำ ไม่ โพสต์รายงานข้อผิดพลาดใน comp.lang.awk. ในขณะที่ เพ่งพิศ นักพัฒนา
อ่านกลุ่มข่าวนี้เป็นครั้งคราว โพสต์รายงานข้อผิดพลาดมีวิธีรายงานที่ไม่น่าเชื่อถือ
ข้อบกพร่อง โปรดใช้ที่อยู่อีเมลที่ให้ไว้ข้างต้นแทน จริงๆ.

หากคุณใช้ระบบ GNU/Linux หรือ BSD คุณอาจต้องการส่งรายงานข้อบกพร่องไปที่
ผู้จำหน่ายการแจกจ่ายของคุณ ไม่เป็นไร แต่โปรดส่งสำเนาให้เจ้าหน้าที่
ที่อยู่อีเมลเช่นกัน เนื่องจากไม่มีการรับประกันว่ารายงานข้อผิดพลาดจะถูกส่งต่อไปยัง
เพ่งพิศ ผู้ดูแล

ใช้การดูถูกออนไลน์โดยใช้บริการ onworks.net


เซิร์ฟเวอร์และเวิร์กสเตชันฟรี

ดาวน์โหลดแอพ Windows & Linux

คำสั่ง Linux

Ad