ในฐานะผู้ดูแลระบบบนระบบ 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
ในไวยากรณ์ข้างต้น ให้แทนที่
วิธีใช้คำสั่ง Grep ใน Linux
การใช้คำสั่ง grep ทำได้ง่ายและเป็นไปตามไวยากรณ์ สิ่งที่คุณต้องทำคือระบุชื่อไฟล์หรือไดเร็กทอรีที่คุณต้องการค้นหาและรูปแบบที่คุณต้องการจับคู่ สำหรับรูปแบบ คุณสามารถใช้คำตรงทั้งหมดหรือนิพจน์ทั่วไป คุณต้องสงสัยว่า “regular expression” ที่นี่คืออะไร? นิพจน์ทั่วไปคือสตริงพิเศษที่ตีความในลักษณะที่แตกต่างกันเมื่อใช้ในพื้นที่เฉพาะ พวกเขาจะถูกแทนที่ด้วยชุดค่าผสมที่เป็นไปได้ทั้งหมดที่ตรงกับรูปแบบ
เช่น คุณต้องการจับคู่ที่อยู่อีเมล คุณสามารถใช้ regex “(.+)\@(.+)\n“ ดูเหมือนซับซ้อน? เรามาแจกแจงกัน:
(.+) จับคู่อักขระใดก็ได้ยกเว้นการขึ้นบรรทัดใหม่\@ ตรวจสอบว่าสัญลักษณ์”@”อยู่ในประโยคที่กำหนดหรือไม่
ตอนนี้คุณรู้แล้วว่า Regular Expression คืออะไรและคำสั่ง grep ทำงานอย่างไร มาดูวิธีใช้คำสั่ง grep ใน Linux กัน
ค้นหาสตริงในไฟล์ด้วยคำสั่ง grep
วิธีทั่วไปในการใช้ grep คือการค้นหาสตริงที่ต้องการในไฟล์ ไวยากรณ์พื้นฐานในการค้นหาด้วยคำสั่ง grep ในไฟล์คือ:
grep <ตัวเลือก
ในส่วน
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
ตัวอย่างเช่น หากคุณต้องการค้นหาสตริง”apple”ในไฟล์ทั้งหมดที่มีอยู่ในไดเร็กทอรี ให้ใช้คำสั่งนี้:
grep”apple”*
หากคุณต้องการค้นหาเฉพาะไฟล์บางประเภท ให้ใช้ตัวเลือกนี้ ไวยากรณ์:
grep
ตัวอย่างเช่น หากคุณต้องการค้นหาคำว่า”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 จะง่ายขึ้น แทนที่จะต้องเลื่อนไปมาอย่างต่อเนื่องและมองหาบางสิ่ง หากต้องการกรองคำหรือรูปแบบเฉพาะจากเอาต์พุตคำสั่งเฉพาะ ให้แทนที่
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 […]