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

สารบัญ

คำสั่ง grep ใน Linux คืออะไร

คำสั่ง grep เป็นเครื่องมือบรรทัดคำสั่งที่มีประสิทธิภาพใน Linux ที่ใช้เพื่อค้นหาและกรองรูปแบบหรือสตริงเฉพาะในไฟล์ ไดเร็กทอรีหรือแม้กระทั่งในเอาต์พุตของคำสั่งอื่นๆ คุณอาจสงสัยเกี่ยวกับชื่อที่ผิดปกติ มันย่อมาจาก”Global Regular Expression Print”เปิดตัวครั้งแรกโดย Ken Thompson ในปี 1973 สำหรับระบบปฏิบัติการ Unix ด้วยความอเนกประสงค์และใช้งานง่าย คำสั่ง grep จึงเป็นเครื่องมือที่ต้องมีในคลังแสงของผู้ใช้ Linux ทุกคน

โดยทั่วไป คำสั่ง grep จะติดตั้งไว้ล่วงหน้าใน Linux distros ส่วนใหญ่ แต่หากคุณพบว่าไม่มีอยู่ในระบบของคุณ ให้ติดตั้งโดยใช้คำสั่งต่อไปนี้:

ติดตั้งบนระบบที่ใช้เดเบียน:

sudo apt ติดตั้ง grep

ติดตั้งบนระบบที่ใช้ Fedora:

sudo yum ติดตั้ง grep

ติดตั้งบนระบบที่ใช้ Arch:

sudo pacman-S grep

คำสั่ง Grep: ไวยากรณ์และตัวเลือก

การใช้คำสั่ง grep ใน Linux นั้นค่อนข้างตรงไปตรงมา ต้องขอบคุณไวยากรณ์ที่เรียบง่ายพร้อมกับตัวเลือกมากมายให้เล่นด้วย ไวยากรณ์ที่จะใช้คำสั่ง grep คือ:

grep

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

OptionsDescriptions-eตีความ <รูปแบบ> เป็นนิพจน์ทั่วไป-iค้นหา <รูปแบบ> และละเว้นตัวพิมพ์-v แสดงบรรทัดที่ไม่ตรงกับ <รูปแบบ>-cนับจำนวนบรรทัดที่ตรงกัน–สีแสดงผลลัพธ์ในเอาต์พุตสี

วิธีใช้คำสั่ง Grep ใน Linux

การใช้คำสั่ง grep ทำได้ง่ายและเป็นไปตามไวยากรณ์ สิ่งที่คุณต้องทำคือระบุชื่อไฟล์หรือไดเร็กทอรีที่คุณต้องการค้นหาและรูปแบบที่คุณต้องการจับคู่ สำหรับรูปแบบ คุณสามารถใช้คำตรงทั้งหมดหรือนิพจน์ทั่วไป คุณต้องสงสัยว่า “regular expression” ที่นี่คืออะไร? นิพจน์ทั่วไปคือสตริงพิเศษที่ตีความในลักษณะที่แตกต่างกันเมื่อใช้ในพื้นที่เฉพาะ พวกเขาจะถูกแทนที่ด้วยชุดค่าผสมที่เป็นไปได้ทั้งหมดที่ตรงกับรูปแบบ

เช่น คุณต้องการจับคู่ที่อยู่อีเมล คุณสามารถใช้ regex “(.+)\@(.+)\n“ ดูเหมือนซับซ้อน? เรามาแจกแจงกัน:

(.+) จับคู่อักขระใดก็ได้ยกเว้นการขึ้นบรรทัดใหม่\@ ตรวจสอบว่าสัญลักษณ์”@”อยู่ในประโยคที่กำหนดหรือไม่

ตอนนี้คุณรู้แล้วว่า Regular Expression คืออะไรและคำสั่ง grep ทำงานอย่างไร มาดูวิธีใช้คำสั่ง grep ใน Linux กัน

ค้นหาสตริงในไฟล์ด้วยคำสั่ง grep

วิธีทั่วไปในการใช้ grep คือการค้นหาสตริงที่ต้องการในไฟล์ ไวยากรณ์พื้นฐานในการค้นหาด้วยคำสั่ง grep ในไฟล์คือ:

grep <ตัวเลือก

ในส่วน คุณต้องระบุสตริงที่แน่นอน คุณต้องการค้นหา ตัวอย่างเช่น หากคุณต้องการค้นหาสตริง “mango” ภายในไฟล์ที่ชื่อว่า Fruits.txt ให้ใช้คำสั่งนี้:

grep”mango”Fruits.txt

ถ้าคุณต้องการ เพื่อค้นหาโดยไม่สนใจตัวพิมพ์เล็ก จากนั้นใช้แฟล็ก-i กับคำสั่ง grep สำหรับตัวอย่างด้านบน:

grep-i”mango”Fruits.txt

ค้นหาในหลายๆ ไฟล์ด้วย grep

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

grep

ตัวอย่างเช่น ถ้าคุณต้องการ หากต้องการค้นหาสตริง “student” ภายในไฟล์ “student1.txt” และ “student2.txt” ให้ใช้คำสั่งนี้:

grep”John”student1.txt student2.txt

ค้นหาไฟล์ทั้งหมดในไดเร็กทอรีด้วย grep

สมมติว่าคุณต้องการค้นหาสตริงและคุณจำชื่อไฟล์ไม่ได้ เห็นได้ชัดว่าคุณสามารถเขียนชื่อไฟล์ทั้งหมดที่มีอยู่ในไดเร็กทอรีได้ แต่คุณสามารถใช้ไวด์การ์ด “*” แทนได้ ดังที่แสดง:

grep“pattern_to_search”*

ตัวอย่างเช่น หากคุณต้องการค้นหาสตริง”apple”ในไฟล์ทั้งหมดที่มีอยู่ในไดเร็กทอรี ให้ใช้คำสั่งนี้:

grep”apple”*

หากคุณต้องการค้นหาเฉพาะไฟล์บางประเภท ให้ใช้ตัวเลือกนี้ ไวยากรณ์:

grep“pattern_to_search”*.

ตัวอย่างเช่น หากคุณต้องการค้นหาคำว่า”mango”เฉพาะในไฟล์.txt ให้ใช้คำสั่งนี้ คำสั่ง:

grep”mango”*.txt

การใช้ Regular Expression กับ grep

ข้อได้เปรียบหลักของการใช้คำสั่ง grep กับเครื่องมือ/คำสั่งอื่นๆ คือความสามารถในการประมวลผล Regular Expression เพื่อค้นหา เนื้อหา. เพียงรวมแฟล็ก-e กับคำสั่ง grep เพื่อค้นหาโดยใช้นิพจน์ทั่วไป:

grep-e

ตัวอย่างเช่น หากคุณต้องการกรองรหัสอีเมล ใช้คำสั่งนี้:

grep-e”(.+)\@(.+)”emails.txt

ค้นหาคำหลักหลายคำโดยใช้คำสั่ง grep

ถึงตอนนี้ คุณจะต้องสบายใจในการค้นหา สำหรับรูปแบบหรือคำบางคำที่ใช้ grep แต่ถ้าคุณต้องการค้นหาคำ/รูปแบบหลายคำล่ะ grep ช่วยคุณได้เช่นกัน หากต้องการค้นหาหลายคำโดยใช้คำสั่ง grep ให้ใช้ไวยากรณ์นี้:

grep”\|“ชื่อไฟล์

ที่นี่ \| ระบุ grep เพื่อพิมพ์ผลลัพธ์หากข้อความค้นหาทั้งสองรายการตรงกัน ตัวอย่างเช่น หากคุณต้องการค้นหาคำว่า “apple” และ “mango” ในไฟล์ “fruits.txt” ให้ใช้คำสั่งนี้:

grep”apple\|mango”Fruits.txt

นับผลลัพธ์ที่ตรงกัน โดยใช้คำสั่ง grep

บางครั้ง คุณอาจจำเป็นต้องทราบจำนวนผลลัพธ์ที่ตรงกัน สำหรับสิ่งนี้ คุณสามารถใช้แฟล็ก-c กับคำสั่ง grep:

grep-c ชื่อไฟล์”pattern_to_search”

ตัวอย่างเช่น หากคุณต้องการดูว่ามีรหัสอีเมลกี่รหัส ในไฟล์ student1.txt ใช้คำสั่งนี้:

grep-E-c”(.+)@(.+)”student1.txt

หากคุณต้องการดูจำนวนบรรทัดที่ไม่ตรงกับคำค้นหา เพียงเพิ่มแฟล็ก-v พร้อมกับ-c:

grep-v-E-c”(.+)@(.+)”student1.txt

การใช้คำสั่ง grep กับ Shell Pipes

วิธีการทำงานของเชลล์ไพพ์ใน Linux คือส่งเอาต์พุตของคำสั่งหนึ่งไปยังอีกคำสั่งหนึ่งเป็นอินพุต ไวยากรณ์พื้นฐานในการใช้เชลล์ไพพ์คือ:

first_command | Second_command

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

first_command | grep

ตัวอย่างเช่น ถ้าคุณต้องการดูจำนวนครั้งที่คำสั่ง gcc ถูกเรียกใช้ก่อนหน้านี้ คุณสามารถใช้คำสั่งนี้:

history | grep gcc

จะแสดงเฉพาะผลลัพธ์ที่มีคำว่า”gcc”ดังที่แสดงในภาพด้านล่าง

การใช้คำสั่ง grep ใน Linux

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

คำถามที่พบบ่อยเกี่ยวกับคำสั่ง Grep ใน Linux

คำสั่ง grep คำนึงถึงตัวพิมพ์เล็กและใหญ่เมื่อค้นหารูปแบบหรือไม่

โดยค่าเริ่มต้น grep จะทำงาน ในลักษณะที่ละเอียดอ่อน แต่ถ้าคุณต้องการค้นหาโดยไม่คำนึงถึงขนาดตัวพิมพ์ ให้ใช้แฟล็ก-i

ฉันจะค้นหาในไฟล์บีบอัดได้อย่างไร

Zgrep สามารถใช้ grep เวอร์ชันแก้ไขเพื่อ ค้นหาในไฟล์บีบอัด ไวยากรณ์ในการค้นหาไฟล์บีบอัดโดยใช้คำสั่ง zgrep คือ: zgrep”

แสดงความคิดเห็น

เมื่อปีที่แล้ว MSI ได้เปิดตัว Titan GT77 พร้อมด้วย Intel Core i9-12900HX และ RTX 3080 Ti Laptop GPU และเป็นแล็ปท็อปสำหรับเล่นเกมที่ทรงพลังที่สุดในโลก เป็นรุ่นที่หนักหน่วงที่สุด […]

เป็นเวลาไม่กี่เดือนแล้วที่ iPhone 14 ซีรีส์เปิดตัว และเป็นที่ทราบกันดีว่าเป็นปีของรุ่น Pro แต่ถ้าคุณตั้งใจที่จะซื้อมืออาชีพแบบหรูหรา จำนวนเงินที่ต้องจ่าย […]

Wondershare ได้พัฒนาซอฟต์แวร์และเครื่องมือที่ดีที่สุดเพื่อทำให้ชีวิตและความพยายามสร้างสรรค์ของเราง่ายขึ้นในช่วงหลายปีที่ผ่านมา โดยเฉพาะอย่างยิ่ง Wondershare Filmora ได้รับรางวัลมากมาย เป็นผู้รับรางวัล Video Editing Leader […]

Categories: IT Info