วิธีเขียนสคริปต์โดยใช้ภาษาการเขียนโปรแกรม Awk - ตอนที่ 13
ตลอดระยะเวลาตั้งแต่เริ่มต้นซีรีส์ Awk จนถึงตอนที่ 12 เราได้เขียนคำสั่งและโปรแกรม Awk ขนาดเล็กบนบรรทัดคำสั่งและในเชลล์สคริปต์ตามลำดับ
อย่างไรก็ตาม Awk ก็เหมือนกับที่ Shell เป็นภาษาที่ตีความ ดังนั้น จากสิ่งที่เราได้ศึกษามาทั้งหมดตั้งแต่เริ่มต้นซีรีส์นี้ คุณจึงสามารถเขียนสคริปต์ปฏิบัติการ Awk ได้แล้ว
เช่นเดียวกับที่เราเขียนเชลล์สคริปต์ สคริปต์ Awk เริ่มต้นด้วยบรรทัด:
#! /path/to/awk/utility -f
ตัวอย่างเช่น ในระบบของฉัน ยูทิลิตี Awk อยู่ใน /usr/bin/awk ดังนั้น ฉันจะเริ่มสคริปต์ Awk ดังต่อไปนี้:
#! /usr/bin/awk -f
อธิบายบรรทัดด้านบน:
#!
– เรียกว่า Shebang ซึ่งระบุล่ามสำหรับคำแนะนำในสคริปต์/usr/bin/awk
– เป็นล่าม-f
– ตัวเลือกล่าม ใช้ในการอ่านไฟล์โปรแกรม
ดังที่กล่าวไปแล้ว ให้เรามาดูตัวอย่างของสคริปต์ปฏิบัติการ Awk กันดีกว่า โดยเราสามารถเริ่มด้วยสคริปต์ง่ายๆ ด้านล่างนี้ ใช้โปรแกรมแก้ไขที่คุณชื่นชอบเพื่อเปิดไฟล์ใหม่ดังนี้:
vi script.awk
และวางโค้ดด้านล่างลงในไฟล์:
#!/usr/bin/awk -f
BEGIN { printf "%s\n","Writing my first Awk executable script!" }
บันทึกไฟล์และออก จากนั้นทำให้สคริปต์ปฏิบัติการได้โดยออกคำสั่งด้านล่าง:
chmod +x script.awk
หลังจากนั้นให้รัน:
./script.awk
ผลลัพธ์ตัวอย่าง
Writing my first Awk executable script!
โปรแกรมเมอร์คนสำคัญต้องถามว่า “ความคิดเห็นอยู่ที่ไหน ” ใช่แล้ว คุณยังสามารถรวมความคิดเห็นไว้ในสคริปต์ Awk ของคุณได้ การเขียนความคิดเห็นในโค้ดของคุณถือเป็นแนวทางการเขียนโปรแกรมที่ดีเสมอไป
ช่วยให้โปรแกรมเมอร์คนอื่นๆ มองโค้ดของคุณเพื่อทำความเข้าใจสิ่งที่คุณพยายามบรรลุผลในแต่ละส่วนของสคริปต์หรือไฟล์โปรแกรม
ดังนั้นคุณสามารถรวมความคิดเห็นไว้ในสคริปต์ด้านบนได้ดังนี้
#!/usr/bin/awk -f
#This is how to write a comment in Awk
#using the BEGIN special pattern to print a sentence
BEGIN { printf "%s\n","Writing my first Awk executable script!" }
ต่อไป เราจะดูตัวอย่างที่เราอ่านอินพุตจากไฟล์ เราต้องการค้นหาผู้ใช้ระบบชื่อ aaronkilik ในไฟล์บัญชี /etc/passwd จากนั้นพิมพ์ชื่อผู้ใช้ ผู้ใช้ ID และผู้ใช้ GID ดังนี้:
ด้านล่างนี้คือเนื้อหาของสคริปต์ของเราชื่อ second.awk
#! /usr/bin/awk -f
#use BEGIN sepecial character to set FS built-in variable
BEGIN { FS=":" }
#search for username: aaronkilik and print account details
/aaronkilik/ { print "Username :",$1,"User ID :",$3,"User GID :",$4 }
บันทึกไฟล์และออก ทำให้สคริปต์ปฏิบัติการได้และดำเนินการดังต่อไปนี้:
chmod +x second.awk
./second.awk /etc/passwd
ผลลัพธ์ตัวอย่าง
Username : aaronkilik User ID : 1000 User GID : 1000
ในตัวอย่างสุดท้ายด้านล่าง เราจะใช้คำสั่ง do while เพื่อพิมพ์ตัวเลขตั้งแต่ 0-10:
ด้านล่างนี้คือเนื้อหาของสคริปต์ของเราชื่อ do.awk
#! /usr/bin/awk -f
#printing from 0-10 using a do while statement
#do while statement
BEGIN {
#initialize a counter
x=0
do {
print x;
x+=1;
}
while(x<=10)
}
หลังจากบันทึกไฟล์แล้ว ให้ทำให้สคริปต์ทำงานได้เหมือนที่เราเคยทำมาก่อน หลังจากนั้นให้รัน:
chmod +x do.awk
./do.awk
ผลลัพธ์ตัวอย่าง
0
1
2
3
4
5
6
7
8
9
10
สรุป
เรามาถึงจุดสิ้นสุดของซีรีส์ Awk ที่น่าสนใจนี้แล้ว ฉันหวังว่าคุณจะได้เรียนรู้มากมายจากทั้ง 13 ส่วนเพื่อเป็นการแนะนำภาษาการเขียนโปรแกรม Awk
ดังที่ฉันได้กล่าวไว้ตั้งแต่ต้นแล้วว่า Awk เป็นภาษาประมวลผลข้อความที่สมบูรณ์ ด้วยเหตุนี้ คุณจึงสามารถเรียนรู้แง่มุมอื่นๆ เพิ่มเติมของภาษาการเขียนโปรแกรม Awk ได้ เช่น ตัวแปรสภาพแวดล้อม อาร์เรย์ ฟังก์ชัน (ในตัวและกำหนดโดยผู้ใช้) และอื่นๆ อีกมากมาย
ยังมีส่วนเพิ่มเติมของการเขียนโปรแกรม Awk ที่ต้องเรียนรู้และฝึกฝน ดังนั้นด้านล่างนี้ฉันได้ให้ลิงก์ไปยังแหล่งข้อมูลออนไลน์ที่สำคัญที่คุณสามารถใช้เพื่อขยายทักษะการเขียนโปรแกรม Awk สิ่งเหล่านี้ไม่ใช่ทั้งหมดที่คุณต้องการ คุณยังสามารถดูได้อีกด้วย ออกไปหาหนังสือการเขียนโปรแกรม Awk ที่เป็นประโยชน์
ลิงก์อ้างอิง: คู่มือผู้ใช้ GNU Awk และการเขียนโปรแกรมภาษา AWK
สำหรับความคิดใด ๆ ที่คุณต้องการแบ่งปันหรือคำถามให้ใช้แบบฟอร์มความคิดเห็นด้านล่าง อย่าลืมติดต่อกับ Tecmint เสมอเพื่อรับชมซีรีส์ที่น่าตื่นเต้นยิ่งขึ้น