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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- บทนำสู่นิพจน์ปกติ (Regex)
- Grep ขั้นสูงด้วย Regex
- การรวม Regex เข้ากับ sed/awk
- กลุ่มจับคู่ การอ้างอิงย้อนกลับ และการแทนที่