0Pricing
Linux Command Line & Bash Scripting Mastery · บทเรียน

ระเบียน ฟิลด์ และตัวคั่นแบบกำหนดเองใน awk

ควบคุมตัวคั่นฟิลด์ขาเข้าและขาออก เพื่อแบ่งบรรทัด CSV, TSV และบันทึกเป็นคอลัมน์ที่เป็นระเบียบ

ระเบียน ฟิลด์ และตัวคั่นแบบกำหนดเองใน awk เป็นบทเรียน Linux Command Line & Bash Scripting Mastery ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Linux Command Line & Bash Scripting Mastery และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Linux Command Line & Bash Scripting Mastery มีบทเรียนทั้งหมด 4 บทเรียน

ระเบียนและฟิลด์ใน awk คืออะไร

awk อ่านข้อมูลเข้าทีละบรรทัด แต่ละบรรทัดเรียกว่า ระเบียน และแต่ละส่วนที่คั่นด้วยช่องว่างภายในบรรทัดนั้นเรียกว่า ฟิลด์

  • $0 — ระเบียนปัจจุบันทั้งหมด (ทั้งบรรทัด)
  • $1 — ฟิลด์แรก
  • $2 — ฟิลด์ที่สอง
  • $NF — ฟิลด์สุดท้าย (NF = จำนวนฟิลด์)

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

#!/usr/bin/env bash
# Show how awk sees records and fields
echo 'alice 30 engineer' | awk '{ print "Name:", $1, "Age:", $2, "Role:", $3 }'

# $NF is always the last field — regardless of how many there are
echo 'one two three four five' | awk '{ print "Last field:", $NF }'

ตัวคั่นฟิลด์ข้อมูลเข้า: FS

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

คุณกำหนดค่า FS ได้สองวิธี:

  • ใช้แฟล็ก -F ในบรรทัดคำสั่ง: awk -F':'
  • ภายในบล็อก BEGIN: BEGIN { FS = ":" }

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

#!/usr/bin/env bash
# Parse /etc/passwd using ':' as the field separator
# Field 1 = username, field 3 = UID, field 7 = shell
echo 'root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin' \
  | awk -F':' '{ print $1, "UID="$3, "shell="$7 }'

การกำหนดค่า FS ในบล็อก BEGIN

สำหรับสคริปต์ที่ยาวกว่าคำสั่งบรรทัดเดียว การวาง FS ไว้ในบล็อก BEGIN ถือเป็นแนวปฏิบัติมาตรฐาน บล็อก BEGIN จะทำงาน ก่อนที่ awk จะอ่านข้อมูลเข้าใด ๆ ดังนั้นตัวคั่นจึงพร้อมใช้งานกับระเบียนแรก

รูปแบบนี้ยังช่วยให้คุณกำหนดค่าตัวแปรหลายตัวพร้อมกัน เพิ่มคำอธิบาย และเก็บตรรกะทั้งหมดไว้ภายในสคริปต์ไฟล์เดียว

ตัวคั่นที่พบบ่อยในการใช้งานจริง:

  • โคลอน : — /etc/passwd, /etc/shadow
  • แท็บ \t — ข้อมูลส่งออกแบบ TSV ผลลัพธ์จากคอมไพเลอร์
  • จุลภาค , — ไฟล์ CSV (แบบง่าย ไม่มีฟิลด์ที่ใส่เครื่องหมายคำพูด)
  • ไปป์ | — รูปแบบบันทึกบางชนิด ข้อมูลส่งออกจากฐานข้อมูล
#!/usr/bin/env bash
# awk script using BEGIN to set FS for TSV input
printf 'alice\t30\tengineer\nbob\t25\tdesigner\ncarol\t35\tmanager\n' \
  | awk 'BEGIN { FS = "\t" } { printf "%-10s age=%-3s role=%s\n", $1, $2, $3 }'

การแยกวิเคราะห์ไฟล์ CSV ด้วย awk

CSV (ค่าที่คั่นด้วยจุลภาค) เป็นหนึ่งในรูปแบบข้อมูลที่พบบ่อยที่สุดในงานวิศวกรรมเชลล์ การกำหนด FS="," ทำให้ awk ใช้จุลภาคเป็นตัวคั่น

ข้อควรระวังสำคัญ: การจัดการ CSV ในตัวของ awk ไม่รองรับฟิลด์ที่มีเครื่องหมายคำพูดและมีจุลภาคอยู่ภายใน เช่น "Smith, John" วิธีนี้ทำงานได้สมบูรณ์กับ CSV แบบง่ายที่ไม่มีจุลภาคในฟิลด์ที่ใส่เครื่องหมายคำพูด แต่สำหรับ CSV ที่สอดคล้องกับ RFC 4180 และมีฟิลด์ลักษณะดังกล่าว ให้ใช้ตัวแยกวิเคราะห์ CSV โดยเฉพาะ หรือใช้ miller/csvkit

งานที่พบได้บ่อยในโลกจริงคือการดึงคอลัมน์ที่ต้องการและกรองแถวตามค่า ซึ่งทำได้ง่ายด้วย awk เมื่อกำหนด FS แล้ว

#!/usr/bin/env bash
# Simple CSV: extract name and salary columns, filter salary > 50000
data='name,department,salary
alice,engineering,95000
bob,marketing,48000
carol,engineering,112000
dave,hr,45000'

echo "$data" | awk -F',' '
  NR == 1 { next }          # skip header row
  $3 > 50000 { print $1, "earns", $3 }
'

ตัวคั่นฟิลด์หลายอักขระและนิพจน์ปกติ

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

ตัวอย่างตัวคั่นแบบนิพจน์ปกติ:

  • FS = "[,;]" — แยกเมื่อพบจุลภาคหรืออัฒภาค
  • FS = "[ \t]+" — แยกเมื่อพบช่องว่างหรือแท็บอย่างน้อยหนึ่งตัว (เหมือนค่าเริ่มต้นแต่ระบุอย่างชัดเจน)
  • FS = "::" — แยกเมื่อพบโคลอนคู่ตามตัวอักษร
  • FS = "\\|" — แยกเมื่อพบอักขระไปป์ (ต้องทำการหลีกอักขระ)

เมื่อ FS เป็นนิพจน์ปกติ awk (gawk) จะปฏิบัติต่อค่านี้เป็นรูปแบบ ไม่ใช่สตริงตามตัวอักษร

#!/usr/bin/env bash
# Log lines with mixed delimiters: split on " | " or "::" or ","
# Here we split on one or more spaces or pipe characters
printf '2024-01-15 | ERROR | disk full | /dev/sda1\n2024-01-15 | INFO  | startup ok | main\n' \
  | awk -F' \\| ' '{ printf "date=%-12s level=%-6s msg=%s\n", $1, $2, $3 }'

# Split on multiple possible delimiters using character class
echo 'alpha,beta;gamma,delta;epsilon' \
  | awk -F'[,;]' '{ for(i=1; i<=NF; i++) print i": "$i }'

ตัวคั่นฟิลด์ข้อมูลออก: OFS

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

ประเด็นสำคัญคือ OFS จะถูกแทรกระหว่างฟิลด์เฉพาะเมื่อใช้ไวยากรณ์ จุลภาคใน print หรือเมื่อกำหนดค่าให้ฟิลด์แล้ว awk สร้าง $0 ขึ้นใหม่ หากคุณต่อสตริงโดยใส่ช่องว่างในโค้ดต้นฉบับ จะไม่ใช้ OFS

  • print $1, $2, $3 — จุลภาคจะทำให้แทรก OFS ระหว่างฟิลด์
  • print $1 " " $2 — ใช้ช่องว่างที่ระบุโดยตรง จึงไม่สนใจ OFS

รูปแบบที่พบบ่อยคือ อ่าน CSV แปลงข้อมูล แล้วเขียนเป็น TSV โดยกำหนด FS="," และ OFS="\t"

#!/usr/bin/env bash
# Convert CSV to TSV using FS and OFS
data='alice,30,engineer
bob,25,designer
carol,35,manager'

echo "$data" | awk 'BEGIN { FS=","; OFS="\t" } { print $1, $2, $3 }'

echo '---'

# OFS also applies when you modify a field — awk rebuilds $0 with OFS
echo 'alice,30,engineer' | awk 'BEGIN { FS=","; OFS=" | " } { $1=$1; print $0 }'

บังคับให้ awk สร้าง $0 ใหม่ด้วย OFS

มีเทคนิคหนึ่งที่ละเอียดอ่อนแต่สำคัญ: การกำหนดค่าให้ฟิลด์ใด ๆ (แม้แต่การกำหนดฟิลด์ให้ตัวมันเองด้วย $1=$1) จะบังคับให้ awk สร้าง $0 ขึ้นใหม่ โดยนำฟิลด์ทั้งหมดมาต่อกันด้วย OFS

นี่คือวิธีมาตรฐานในการจัดรูปแบบตัวคั่นของระเบียนใหม่ โดยไม่ต้องแสดงผลทุกฟิลด์ด้วยตนเอง:

  • กำหนด FS ให้เป็นตัวคั่นข้อมูลเข้า
  • กำหนด OFS ให้เป็นตัวคั่นข้อมูลออกที่ต้องการ
  • บังคับให้สร้างใหม่ด้วย $1=$1
  • แสดงผล $0

วิธีนี้รองรับฟิลด์จำนวนเท่าใดก็ได้ และหลีกเลี่ยงการเขียน $1, $2, $3, ... แบบตายตัว

#!/usr/bin/env bash
# Reformat a pipe-delimited file to comma-separated WITHOUT listing every field
printf 'alice|30|engineer|london\nbob|25|designer|paris\ncarol|35|manager|berlin\n' \
  | awk 'BEGIN { FS="|"; OFS="," } { $1=$1; print $0 }'

# Useful when you don't know how many fields there are:
printf 'a|b|c|d|e|f|g\n1|2|3|4|5|6|7\n' \
  | awk 'BEGIN { FS="|"; OFS="\t" } { $1=$1; print $0 }'

ตัวคั่นระเบียน: RS

เช่นเดียวกับที่ FS ใช้แยกฟิลด์ภายในระเบียน RS (ตัวคั่นระเบียน) จะกำหนดสิ่งที่ใช้แยกระเบียนออกจากกัน โดยค่าเริ่มต้น RS คือ newline ดังนั้น awk จึงประมวลผลทีละบรรทัด

การเปลี่ยนค่า RS ช่วยให้ประมวลผลระเบียนหลายบรรทัดได้อย่างมีประสิทธิภาพ:

  • RS="" — โหมดย่อหน้า: บรรทัดว่างใช้แยกระเบียน (ฟิลด์สามารถครอบคลุมหลายบรรทัดได้)
  • RS=";" — แยกด้วยเครื่องหมายอัฒภาค (มีประโยชน์สำหรับข้อมูลส่งออกจาก SQL)
  • RS="\n" — newline แบบระบุอย่างชัดเจน (ค่าเริ่มต้น)

ในโหมดย่อหน้า (RS="") ยังคงใช้ FS เพื่อแยกฟิลด์ภายในระเบียนหลายบรรทัด และ newline ภายในระเบียนจะถูกถือเป็นตัวคั่นฟิลด์โดยอัตโนมัติด้วย

#!/usr/bin/env bash
# Paragraph mode: each blank-line-separated block is one record
# Useful for processing structured text blocks (e.g., stanzas, config sections)
data='Name: Alice
Role: Engineer
City: London

Name: Bob
Role: Designer
City: Paris'

echo "$data" | awk 'BEGIN { RS=""; FS="\n" } {
  print "Record", NR":"
  for (i=1; i<=NF; i++) print "  ", $i
  print ""
}'

ตัวคั่นระเบียนผลลัพธ์: ORS

ORS (ตัวคั่นระเบียนผลลัพธ์) จะถูกพิมพ์ต่อท้ายคำสั่ง print แต่ละคำสั่ง โดยค่าเริ่มต้นคือ newline (\n) ซึ่งเป็นเหตุผลที่ print แต่ละครั้งขึ้นบรรทัดใหม่

การเปลี่ยนค่า ORS ช่วยให้คุณทำสิ่งต่อไปนี้ได้:

  • รวมระเบียนไว้ในบรรทัดเดียว: ORS=" "
  • เพิ่มบรรทัดว่างระหว่างระเบียนผลลัพธ์: ORS="\n\n"
  • สร้างรูปแบบผลลัพธ์แบบกำหนดเอง เช่น ส่วนประกอบของ JSON หรือ XML

โปรดทราบว่า printf จะไม่ใช้ ORS — ORS มีผลเฉพาะกับคำสั่ง print แบบเดี่ยวเท่านั้น ให้ใช้ printf เมื่อต้องการควบคุมการจัดรูปแบบอย่างละเอียด

#!/usr/bin/env bash
# Join all matching lines onto one line by setting ORS to a space
printf 'apple\nbanana\ncherry\ndate\n' | awk '{ ORS=" " } { print $0 }'
echo  # final newline

# Add a blank line after every output record for readability
printf 'alice 30 engineer\nbob 25 designer\ncarol 35 manager\n' \
  | awk 'BEGIN { ORS="\n\n" } { print $1, "is a", $3 }'

ตัวอย่างเชิงปฏิบัติ: การแยกวิเคราะห์บันทึกการเข้าถึงของ Apache

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

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

ฟิลด์ในรูปแบบบันทึกแบบรวมมีโดยประมาณดังนี้:

  1. IP ของไคลเอนต์
  2. ข้อมูลระบุตัวตน (โดยปกติคือ -)
  3. ผู้ใช้ที่ผ่านการยืนยันตัวตน (โดยปกติคือ -)
  4. การประทับเวลา (อยู่ในวงเล็บเหลี่ยมและนับเป็นโทเค็นเดียว)
  5. เมธอด+เส้นทาง+โพรโทคอลของคำขอ (อยู่ในเครื่องหมายคำพูด)
  6. รหัสสถานะ HTTP
  7. จำนวนไบต์ของการตอบกลับ
#!/usr/bin/env bash
# Parse a simulated Apache Combined Log Format line
# Extract: IP, status code, bytes, and request path
logs='192.168.1.10 - alice [15/Jan/2024:10:23:45 +0000] "GET /api/users HTTP/1.1" 200 1523
10.0.0.5 - - [15/Jan/2024:10:23:46 +0000] "POST /login HTTP/1.1" 401 89
172.16.0.3 - bob [15/Jan/2024:10:23:47 +0000] "GET /dashboard HTTP/1.1" 200 8741'

echo "$logs" | awk '{
  ip     = $1
  status = $9
  bytes  = $10
  # Extract the request path from the quoted string in field 7
  split($7, parts, "/")
  path = "/" parts[2]
  printf "ip=%-15s status=%s bytes=%-6s endpoint=%s\n", ip, status, bytes, path
}'

การรวม FS, OFS, RS และ ORS ในไปป์ไลน์

ในการพัฒนาสคริปต์เชลล์จริง คุณแทบไม่ใช้ตัวคั่นเหล่านี้แยกกัน รูปแบบไปป์ไลน์ที่พบได้บ่อยคือใช้ awk เป็น ตัวแปลงรูปแบบ ตรงกลางไปป์ไลน์ เพื่อแปลงรูปแบบที่มีโครงสร้างหนึ่งไปเป็นอีกรูปแบบหนึ่ง

ประเด็นสำคัญในการรวมตัวคั่นมีดังนี้:

  • กำหนด FS และ OFS พร้อมกันใน BEGIN เสมอเมื่อแปลงรูปแบบ
  • ใช้ $1=$1 เพื่อเรียกให้สร้าง $0 ใหม่ เมื่อต้องการจัดรูปแบบฟิลด์ทั้งหมดใหม่โดยไม่ต้องระบุทีละฟิลด์
  • เปลี่ยน RS เฉพาะเมื่อระเบียนของคุณครอบคลุมหลายบรรทัดจริง ๆ
  • ใช้ ORS เพื่อควบคุมช่องว่างระหว่างระเบียนผลลัพธ์
  • เลือกใช้ printf เมื่อต้องการจัดรูปแบบอย่างแม่นยำ และใช้ print เมื่อการเติมตัวปิดท้ายอัตโนมัติด้วย ORS สะดวกกว่า
#!/usr/bin/env bash
# Full pipeline: read a colon-delimited file,
# filter rows where field 3 (UID) >= 1000 (real users),
# then output as tab-separated: username, UID, home dir
echo 'root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
alice:x:1001:1001:Alice:/home/alice:/bin/bash
bob:x:1002:1002:Bob:/home/bob:/bin/zsh
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin' \
  | awk 'BEGIN { FS=":"; OFS="\t" } $3 >= 1000 { print $1, $3, $6 }'

ตรวจสอบความรู้: OFS และการสร้างฟิลด์ใหม่

ทดสอบความเข้าใจของคุณเกี่ยวกับการทำงานร่วมกันระหว่าง OFS กับการกำหนดค่าฟิลด์ใน awk

สรุปบทเรียน: ระเบียน ฟิลด์ และตัวคั่น

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

  • FS — ตัวคั่นฟิลด์ขาเข้า กำหนดด้วย -F หรือใน BEGIN อาจเป็นอักขระ สตริง หรือนิพจน์ทั่วไปก็ได้ ค่าเริ่มต้นคือช่องว่าง
  • OFS — ตัวคั่นฟิลด์ขาออก แทรกไว้ระหว่างฟิลด์ในการเรียกใช้ print $1, $2 และเมื่อ awk สร้าง $0 ใหม่หลังการกำหนดค่าฟิลด์ ค่าเริ่มต้นคือช่องว่างหนึ่งช่อง
  • RS — ตัวคั่นระเบียนขาเข้า กำหนดสิ่งที่ใช้แยกระเบียน (บรรทัด) ค่าเริ่มต้นคือ newline หากตั้งเป็นสตริงว่างจะเข้าสู่โหมดย่อหน้า
  • ORS — ตัวคั่นระเบียนขาออก เติมต่อท้ายหลัง print ทุกครั้ง ค่าเริ่มต้นคือ newline เปลี่ยนค่าเพื่อรวมบรรทัดหรือเพิ่มช่องว่างได้

รูปแบบสำคัญที่สุดที่ควรจำคือ กำหนดทั้ง FS และ OFS ใน BEGIN จากนั้นใช้ $1=$1 เพื่อสร้าง $0 ใหม่ เมื่อต้องการจัดรูปแบบตัวคั่นในทุกฟิลด์ใหม่โดยไม่กำหนดตำแหน่งฟิลด์แบบตายตัว รูปแบบนี้ใช้ได้กับไฟล์ที่มีจำนวนคอลัมน์เท่าใดก็ได้ และเป็นพื้นฐานของไปป์ไลน์แปลงรูปแบบที่ใช้ awk

คำถามที่พบบ่อย

บทเรียน “ระเบียน ฟิลด์ และตัวคั่นแบบกำหนดเองใน awk” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “ระเบียน ฟิลด์ และตัวคั่นแบบกำหนดเองใน awk” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Linux Command Line & Bash Scripting Mastery ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Linux Command Line & Bash Scripting Mastery มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “ระเบียน ฟิลด์ และตัวคั่นแบบกำหนดเองใน awk”

ควบคุมตัวคั่นฟิลด์ขาเข้าและขาออก เพื่อแบ่งบรรทัด CSV, TSV และบันทึกเป็นคอลัมน์ที่เป็นระเบียบ คุณปฏิบัติ Linux Command Line & Bash Scripting Mastery ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Linux Command Line & Bash Scripting Mastery หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Linux Command Line & Bash Scripting Mastery บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน

บทเรียน “ระเบียน ฟิลด์ และตัวคั่นแบบกำหนดเองใน awk” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Linux Command Line & Bash Scripting Mastery นี้ได้ไหม

ได้ บทเรียน Linux Command Line & Bash Scripting Mastery ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. ระเบียน ฟิลด์ และตัวคั่นแบบกำหนดเองใน awk
  2. รูปแบบ ช่วง และบล็อก BEGIN/END
  3. การรวมข้อมูลด้วยอาร์เรย์และการจัดกลุ่มใน awk
  4. ฟังก์ชัน awk การจัดรูปแบบด้วย printf และการสร้างรายงาน
← กลับไปที่ Linux Command Line & Bash Scripting Mastery