เกร็ป

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

**การนำไปใช้**
มีการการอิมพลีเมนต์ grep หลากหลายเจ้า ทั้งในระบบปฏิบัติการและสิ่งแวดล้อมการพัฒนาซอฟต์แวร์จำนวนมาก เวอร์ชันแรก ๆ ได้แก่ egrep และ fgrep ซึ่งเปิดตัวใน Unix เวอร์ชัน 7reader ตัวแปร "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 
ที่grep ,egrep และfgrepคำสั่ง ยังถูกย้ายไปยังระบบปฏิบัติการ 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 มากกว่าการค้นหาด้วยกระดาษ (เช่นที่ทำจาก "ต้นไม้ที่ตายแล้ว" ซึ่งในบริบทนี้ถือเป็นคำดูหมิ่นสำหรับกระดาษ) 

**ดูเพิ่ม**
 ขั้นตอนวิธีการจับคู่สตริง 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