0Pricing
DevOps Bootcamp · บทเรียน

Grep ขั้นสูงด้วย Regex

ใช้รูปแบบ regex ที่ซับซ้อนร่วมกับ 'grep' เพื่อค้นหาข้อความในไฟล์ได้อย่างเฉพาะเจาะจงและมีประสิทธิภาพ

Grep ขั้นสูงด้วย Regex เป็นบทเรียน DevOps Bootcamp ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน DevOps Bootcamp และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 4 บทเรียน

พลังพิเศษของนิพจน์ทั่วไปใน Grep

ยินดีต้อนรับสู่บทเรียน Grep ขั้นสูงด้วยนิพจน์ทั่วไป ในบทเรียนก่อนหน้า เราได้เรียนรู้เกี่ยวกับนิพจน์ทั่วไป (Regex) แล้ว ตอนนี้เราจะปลดล็อกศักยภาพทั้งหมดของนิพจน์เหล่านี้ภายในคำสั่ง grep อันทรงพลัง

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

เปิดใช้งานนิพจน์ทั่วไปแบบขยาย (-E)

โดยค่าเริ่มต้น grep จะใช้นิพจน์ทั่วไปพื้นฐาน (BRE) หากต้องการใช้ความสามารถขั้นสูง เช่น +, ?, | และ () เราต้องเปิดใช้งานนิพจน์ทั่วไปแบบขยาย (ERE)

คุณทำได้โดยใช้ตัวเลือก -E หรือใช้คำสั่ง egrep ซึ่งโดยพื้นฐานแล้วก็คือ grep -E มาสร้างไฟล์ตัวอย่างเพื่อใช้ทดลองกัน

echo "apple
banana
appanana
orange
app" > fruits.txt

ตัวระบุจำนวน: หนึ่งครั้งขึ้นไป (+)

ตัวระบุจำนวน + จับคู่กับการปรากฏของอักขระหรือกลุ่มก่อนหน้าหนึ่งครั้งขึ้นไป มีประโยชน์มากเมื่อคุณคาดว่ารูปแบบจะทำซ้ำอย่างน้อยหนึ่งครั้ง

ตัวอย่างเช่น หากต้องการค้นหาบรรทัดที่มี 'p' ตามด้วย 'a' หนึ่งตัวขึ้นไป เราจะใช้ pa+

grep -E 'pa+' fruits.txt

ตัวระบุจำนวน: ศูนย์ครั้งขึ้นไป (*)

ตัวระบุจำนวน * จับคู่กับการปรากฏของอักขระหรือกลุ่มก่อนหน้าศูนย์ครั้งขึ้นไป มีประโยชน์เมื่ออักขระอาจปรากฏหรือไม่ปรากฏก็ได้ แต่ไม่ได้บังคับว่าต้องมี

มาค้นหาบรรทัดที่มี 'b' ตามด้วย 'a' ศูนย์ครั้งขึ้นไปกัน

grep -E 'ba*' fruits.txt

ตัวระบุจำนวน: ศูนย์ครั้งหรือหนึ่งครั้ง (?)

ตัวระบุจำนวน ? จับคู่กับการปรากฏของอักขระหรือกลุ่มก่อนหน้าศูนย์ครั้งหรือหนึ่งครั้ง ให้คิดว่าเป็นการทำให้อักขระเป็นตัวเลือก

ต้องการค้นหาทั้ง 'color' และ 'colour' ใช่ไหม คุณสามารถทำให้ 'u' เป็นตัวเลือกได้

echo "color
colour
coor" > words.txt
grep -E 'colou?r' words.txt

กำหนดจำนวนเฉพาะด้วย {} (วงเล็บปีกกา)

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

  • a{3}: มี 'a' สามตัวพอดี
  • a{2,}: มี 'a' สองตัวขึ้นไป
  • a{1,3}: มี 'a' ตั้งแต่หนึ่งถึงสามตัว

มาค้นหาบรรทัดที่มี 'a' ซ้ำกันสองครั้งพอดีกัน

grep -E 'a{2}' fruits.txt

จุดยึด: จุดเริ่มต้นและจุดสิ้นสุด (^, $)

จุดยึดไม่ได้จับคู่อักขระ แต่จับคู่กับตำแหน่ง จุดยึด ^ จับคู่กับจุดเริ่มต้นของบรรทัด และ $ จับคู่กับจุดสิ้นสุดของบรรทัด

สิ่งนี้สำคัญอย่างยิ่งเพื่อให้แน่ใจว่ารูปแบบของคุณจับคู่กับทั้งบรรทัด หรือเริ่มต้นและสิ้นสุดตรงตำแหน่งที่คุณต้องการ

  • ^apple: บรรทัดที่ขึ้นต้นด้วย 'apple'
  • banana$: บรรทัดที่ลงท้ายด้วย 'banana'
  • ^apple$: บรรทัดที่มีเพียง 'apple'
grep -E '^app' fruits.txt

การสลับทางเลือกด้วย OR (|)

สัญลักษณ์ | (ไปป์) ทำหน้าที่เป็นตัวดำเนินการ OR ซึ่งช่วยให้คุณจับคู่รูปแบบหนึ่งหรืออีกรูปแบบหนึ่งได้ มีประโยชน์อย่างมากสำหรับค้นหาคำหรือวลีหลายรายการที่แตกต่างกันในคราวเดียว

ตัวอย่างเช่น หากต้องการค้นหาบรรทัดที่มี 'apple' หรือ 'orange' อย่างใดอย่างหนึ่ง

grep -E 'apple|orange' fruits.txt

จัดกลุ่มรูปแบบด้วย ()

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

ตัวอย่างเช่น หากต้องการค้นหา 'ana' ที่ปรากฏหนึ่งครั้งขึ้นไปหลัง 'b'

grep -E 'b(ana)+' fruits.txt

ตรวจสอบอย่างรวดเร็ว: Grep ขั้นสูง

กำหนดให้ไฟล์ data.txt มีข้อมูลดังนี้:

cat
cats
catt
catterpillar
dog

คำสั่งใดจะค้นหาบรรทัดที่มี 'cat' ตามด้วย 't' ศูนย์ครั้งขึ้นไปได้อย่างถูกต้อง

ทบทวน: พลังของนิพจน์ทั่วไปใน Grep

คุณเชี่ยวชาญเทคนิค grep ขั้นสูงโดยใช้นิพจน์ทั่วไปแบบขยายแล้ว สิ่งที่เราเรียนรู้มีดังนี้

  • ใช้ -E สำหรับความสามารถของนิพจน์ทั่วไปแบบขยาย
  • ตัวระบุจำนวน: + (หนึ่งครั้งขึ้นไป), * (ศูนย์ครั้งขึ้นไป), ? (ศูนย์ครั้งหรือหนึ่งครั้ง) และ {} สำหรับจำนวนเฉพาะ
  • จุดยึด: ^ (จุดเริ่มต้นของบรรทัด) และ $ (จุดสิ้นสุดของบรรทัด)
  • การสลับทางเลือก | สำหรับเงื่อนไข 'OR'
  • การจัดกลุ่มรูปแบบด้วย ()

เครื่องมือเหล่านี้ช่วยให้คุณค้นหาข้อความได้อย่างแม่นยำและยืดหยุ่น ทำให้คุณเป็นผู้เชี่ยวชาญคำสั่งบรรทัดคำสั่งอย่างแท้จริง

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

บทเรียน “Grep ขั้นสูงด้วย Regex” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “Grep ขั้นสูงด้วย Regex” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส DevOps Bootcamp ให้อัปเกรดเป็น CoddyKit PRO คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “Grep ขั้นสูงด้วย Regex”

ใช้รูปแบบ regex ที่ซับซ้อนร่วมกับ 'grep' เพื่อค้นหาข้อความในไฟล์ได้อย่างเฉพาะเจาะจงและมีประสิทธิภาพ คุณปฏิบัติ DevOps Bootcamp ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน DevOps Bootcamp หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน DevOps Bootcamp บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน

บทเรียน “Grep ขั้นสูงด้วย Regex” ใช้เวลานานแค่ไหน

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

ฉันเขียนและรันโค้ดในบทเรียน DevOps Bootcamp นี้ได้ไหม

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

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

  1. บทนำสู่นิพจน์ปกติ (Regex)
  2. Grep ขั้นสูงด้วย Regex
  3. การรวม Regex เข้ากับ sed/awk
  4. กลุ่มจับคู่ การอ้างอิงย้อนกลับ และการแทนที่
← กลับไปที่ DevOps Bootcamp