เกร็ป

เกร็ป (grep) เป็นโปรแกรมอรรถประโยชน์บรรทัดคำสั่งสำหรับการค้นหาชุดข้อมูลข้อความธรรมดาสำหรับบรรทัดที่ตรงกับนิพจน์ทั่วไป ชื่อของมันมาจากคำสั่ง ed คือ g/re/p (global / regular expression search / and print) ซึ่งมีผลเช่นเดียวกันHauben et al. 1 grep เดิมได้รับการพัฒนาสำหรับระบบปฏิบัติการยูนิกซ์แต่ต่อมาสามารถใช้งานได้กับระบบเหมือนยูนิกซ์ทั้งหมดและบางระบบอื่น เช่น OS-9 

 การนำไปใช้ 
มีการการอิมพลีเมนต์ grep หลากหลายเจ้า ทั้งในระบบปฏิบัติการและสิ่งแวดล้อมการพัฒนาซอฟต์แวร์จำนวนมาก เวอร์ชันแรก ๆ ได้แก่ egrep และ fgrep ซึ่งเปิดตัวใน Unix เวอร์ชัน 7 ตัวแปร "egrep" รองรับไวยากรณ์นิพจน์ปรกติที่เพิ่มโดย Alfred Aho หลังจากการนำนิพจน์ทั่วไปดั้งเดิมของ Ken Thompson ไปใช้งาน ตัวแปร "fgrep" ค้นหาในรายการของสตริง คงที่ ใด ๆ โดยใช้ขั้นตอนวิธีการจับคู่สตริง Aho–Corasick  ไบนารีของตัวแปรเหล่านี้มีอยู่ในระบบสมัยใหม่ โดยปกติแล้วจะเชื่อมโยงไปยัง grep หรือการเรียก grep เป็นเชลล์สคริปต์โดยมีการเพิ่มแฟล็กที่เหมาะสม เช่น exec grep -E "$@"

egrep และ fgrep แม้จะใช้งานทั่วไปบนระบบ POSIX จนถึงจุดที่ข้อกำหนด POSIX กล่าวถึงการมีอยู่อย่างแพร่หลาย แต่จริง ๆ แล้วมิได้เป็นส่วนหนึ่งของ POSIX

คำสั่งอื่น ๆ มีคำว่า "grep" เพื่อระบุว่าเป็นเครื่องมือค้นหา ซึ่งโดยทั่วไปจะใช้การจับคู่นิพจน์ทั่วไป ตัวอย่างเช่น ยูทิลิตี้ pgrep จะแสดงกระบวนการที่มีชื่อตรงกับนิพจน์ทั่วไปที่กำหนด 

ในภาษาเพิร์ล grep คือชื่อของฟังก์ชันในตัวที่ค้นหาองค์ประกอบในรายการที่ตรงตามคุณสมบัติบางอย่าง โดยทั่วไปฟังก์ชันลำดับที่สูงกว่านี้จะมีชื่อว่า filter หรือ where ในภาษาอื่น

คำสั่ง pcregrep คือการนำ grep ไปใช้ซึ่งใช้ไวยากรณ์ นิพจน์ทั่วไปของ Perl ฟังก์ชันที่คล้ายกันสามารถเรียกใช้ได้ใน grep เวอร์ชัน GNU พร้อมด้วยแฟล็ก -P

พอร์ต ของ grep (ภายใน Cygwin และ GnuWin32 เป็นต้น) ยังทำงานบนไมโครซอฟท์ วินโดวส์ นอกจากนี้วินโดวส์บางเวอร์ชันมีคำสั่ง qgrep หรือ findstr ที่คล้ายกัน 

คำสั่ง grep ยังเป็นส่วนหนึ่งของ เครื่องมือ MSX-DOS2 ของ ASCII สำหรับ MSX-DOS เวอร์ชัน 2 

ที่ , และคำสั่ง ยังถูกย้ายไปยังระบบปฏิบัติการ IBM i อีกด้วย 

ซอฟต์แวร์ Adobe InDesign มีฟังก์ชัน GREP (ตั้งแต่เวอร์ชัน CS3 (2007)) ในกล่องโต้ตอบ ค้นหา/เปลี่ยนแปลง  แท็บ "GREP" และนำมาใช้กับ InDesign CS4 ใน รูปแบบย่อหน้า "GREP สไตล์"

 agrep 
agrep (approximate grep, grep โดยประมาณ) จะจับคู่แม้ว่าข้อความจะพอดีกับรูปแบบการค้นหา โดยประมาณ เท่านั้น

คำสั่งต่อไปนี้จะค้นหา netmasks ในไฟล์ myfile แต่ยังรวมไปถึงคำอื่น ๆ ที่สามารถนำมาจากคำนี้ได้ โดยจะมีการแทนที่ไม่เกินสองครั้ง
 agrep -B netmasks myfile
ตัวอย่างนี้สร้างรายการการจับคู่ที่ใกล้เคียงที่สุด ซึ่งเป็นรายการที่มีการเปลี่ยนตัวน้อยที่สุดแสดงไว้เป็นอันดับแรก แฟล็กคำสั่ง B หมายถึง best :
 agrep -B netmasks myfile

 การใช้เป็นคำกริยา 
ในเดือนธันวาคม พ.ศ. 2546 Oxford English Dictionary Online ได้เพิ่ม "grep" เป็นทั้งคำนามและคำกริยา

การใช้เป็นคำกริยาทั่วไปคือวลี "คุณไม่สามารถ grep ต้นไม้ที่ตายแล้วได้" ซึ่งหมายความว่าเราสามารถค้นหาผ่านสื่อดิจิทัลได้ง่ายกว่าโดยใช้เครื่องมือเช่น grep มากกว่าการค้นหาด้วยกระดาษ (เช่นที่ทำจาก "ต้นไม้ที่ตายแล้ว" ซึ่งในบริบทนี้ถือเป็นคำดูหมิ่นสำหรับกระดาษ)Jargon File, article "Documentation"

 ดูเพิ่ม 

 ขั้นตอนวิธีการจับคู่สตริง Aho–Corasick 
 agrep คำสั่งจับคู่สตริงโดยประมาณ
 find (Windows) หรือ Findstr คำสั่ง DOS และ Windows ที่ทำการค้นหาข้อความ คล้ายกับ grep ธรรมดา
 find (Unix) คำสั่ง Unix ที่ใช้ค้นหาไฟล์ตามแอตทริบิวต์ แตกต่างจาก grep มาก
 รายการคำสั่งยูนิกซ์
 vgrep หรือ "visual grep "
 ngrep หรือ network grep

 อ้างอิง 

 หมายเหตุ 

 แหล่งข้อมูลอื่น 
 เว็บไซต์อย่างเป็นทางการของ GNU Grep
 คู่มือ GNU Grep
 grep(1) – คู่มือโปรแกรมเมอร์  เล่ม 1
 grep(1) – คู่มือ คำสั่ง  
 "ทำไม GNU grep ถึงเร็ว" - รายละเอียดการใช้งานจากผู้เขียน GNU grep
 Command Grep – 25 ตัวอย่างเชิงปฏิบัติ
หมวดหมู่:โปรแกรมยูนิกซ์มาตรฐาน
หมวดหมู่:Webarchive template wayback links