เกือบทุกคนที่มีคอมพิวเตอร์หรือทำงานกับใครจะรู้จักแป้นพิมพ์ลัด Ctrl + F เพื่อค้นหาข้อความ "F" มาจาก "Find", "to find" ในภาษาอังกฤษและสามารถใช้เพื่อค้นหาข้อความบนหน้าเว็บได้ ทางลัดนี้มีให้ใช้งานในหลาย ๆ แอปพลิเคชันมีโปรแกรมที่ใช้ "B" สำหรับ "Search แต่ทางลัดเหล่านี้จะใช้ได้เฉพาะเมื่อเราอยู่ในแอปพลิเคชันและเปิดไฟล์ ใน Linux เรามีเครื่องมือที่มีประสิทธิภาพมากที่เราสามารถเปิดใช้งานได้จาก Terminal และถ้าเราต้องการ ค้นหาข้อความใด ๆ ที่อยู่ในทีมของเราเราจะใช้คำสั่ง grep.
grep เป็นคำสั่งที่จะช่วยให้เราค้นหาข้อความภายในไฟล์ที่เราระบุ ชื่อของมันมาจาก g / re / p ซึ่งเป็นคำสั่งที่ใช้ได้กับสิ่งที่คล้ายกันในโปรแกรมแก้ไขข้อความ Unix / Linux เช่นเดียวกับคำสั่งอื่น ๆ grep มีมากมาย ตัวเลือกที่เราจะเพิ่มในรูปแบบของตัวอักษร และแต่ละคนจะรับใช้งานที่แตกต่างกัน ด้วยการรวมตัวเลือกเหล่านี้เราจะสามารถทำการค้นหาที่ซับซ้อนในไฟล์อย่างน้อยหนึ่งไฟล์ เราจะแสดงทุกสิ่งที่คุณจำเป็นต้องรู้
กับ grep เราจะพบข้อความใด ๆ ในไฟล์ใด ๆ
ก่อนอื่นเราจะอธิบายตัวเลือกที่มีให้:
- -i: จะไม่แยกความแตกต่างระหว่างตัวพิมพ์ใหญ่และตัวพิมพ์เล็ก
- -w: บังคับให้ค้นหาเฉพาะคำที่เจาะจง
- -v: เลือกบรรทัดที่ไม่ตรงกัน
- -n: แสดงจำนวนบรรทัดพร้อมคำที่ร้องขอ
- -h: ลบคำนำหน้าออกจากชื่อไฟล์ Unix ในเอาต์พุต
- -r: ค้นหาไดเรกทอรีแบบวนซ้ำ
- -R: เหมือน -r แต่ทำตามลิงก์สัญลักษณ์ทั้งหมด
- -l: แสดงเฉพาะชื่อไฟล์ที่มีบรรทัดที่เลือก
- -c- แสดงเพียงหนึ่งครั้งต่อไฟล์ของบรรทัดที่เลือก
- -สี: แสดงรูปแบบการจับคู่สี
ในภาพที่คุณมุ่งหน้าไปบทความนี้ฉันได้ค้นหาคำว่า "รูปภาพ" ในไฟล์ "830.desktop" ที่อยู่ในเส้นทางนั้น อย่างที่คุณเห็นฉันได้เขียน:
grep Imágenes /home/pablinux/Documentos/830.desktop
โปรดทราบว่าในบทความนี้เราจะเขียนตัวอย่างที่ต้องแก้ไขตามการตั้งค่าการค้นหาของเรา ด้วยการพูดว่า "File", "Word" ฯลฯ เราจะอ้างถึงไฟล์พร้อมพา ธ. ถ้าฉันเพิ่งเขียน "grep Images 830.desktop" ฉันจะได้รับข้อความแจ้งว่าไม่มีไฟล์นี้ หรือจะเป็นเช่นนั้นเว้นแต่ว่าไฟล์นั้นอยู่ในไดเร็กทอรีราก
ตัวอย่างอื่น ๆ จะเป็น:
- grep -i ภาพ /home/pablinux/Documentos/830.desktopโดยที่ "รูปภาพ" จะเป็นคำที่เราต้องการค้นหาและส่วนที่เหลือเป็นไฟล์ที่มีพา ธ ตัวอย่างนี้จะค้นหา "รูปภาพ" ในไฟล์ "830.desktop" ที่ไม่คำนึงถึงตัวพิมพ์เล็กและใหญ่
- ภาพ grep -R: มันจะค้นหาทุกบรรทัดของไดเร็กทอรีและไดเร็กทอรีย่อยทั้งหมดที่พบคำว่า "images"
- grep -c ตัวอย่าง test.txt: สิ่งนี้จะค้นหาเราและแสดงจำนวนครั้งทั้งหมดที่ "ตัวอย่าง" ปรากฏในไฟล์ชื่อ "test.txt
ด้วย grep เรายังสามารถค้นหาไฟล์
หากสิ่งที่เราต้องการคือการค้นหาไฟล์ 830.desktop เราจะเขียนคำสั่งต่อไปนี้:
grep 830.desktop
สิ่งนี้จะดำเนินการ ค้นหาไฟล์« 830.desktop »ในโฟลเดอร์ส่วนตัวของเรานั่นคือถ้าไฟล์นั้นอยู่ในโฟลเดอร์ส่วนตัวของผู้ใช้คนอื่นก็จะไม่พบไฟล์นั้น นี่เป็นเรื่องปกติที่สุดในโลกเนื่องจากผู้ใช้ไม่ได้รับอนุญาตให้เข้าถึงเนื้อหาของผู้อื่นโดยไม่ต้องใช้รหัสผ่าน
วิธีดำเนินการค้นหาแบบวนซ้ำ
grep มันยังช่วยให้เรา ทำการค้นหาภายใต้กฎหรือหลักเกณฑ์ที่เกิดขึ้นประจำ. ตัวอย่างเช่นอ่านไฟล์ทั้งหมดในแต่ละไดเร็กทอรีที่มีคำว่า "Pablinux" สำหรับสิ่งนี้เราจะเขียน:
grep -r Pablinux /home/
O ดี:
grep -R Pablinux /home/
เราจะเห็นผลลัพธ์สำหรับ "Pablinux" ในบรรทัดที่แยกจากกันนำหน้าด้วยชื่อของไฟล์ที่พบ หากเราไม่ต้องการเห็นชื่อไฟล์ในเอาต์พุตข้อมูลเราจะใช้ตัวเลือก -h (จาก "hide"; hide):
grep -h -R Pablinux /home/
เราสามารถเข้าร่วมตัวเลือกและเขียน "-hR" โดยไม่มีเครื่องหมายอัญประกาศ
วิธีค้นหาคำที่แน่นอน
บางครั้งอาจมีไฟล์ที่มีสิ่งที่เราต้องการค้นหาอย่างอื่น ตัวอย่างเช่นสิ่งนี้สามารถเกิดขึ้นได้กับเราโดยใช้คำประสมและเมื่อค้นหา "ป่าไม้" เราจะพบ "ทหารพราน" ถ้าเราต้องการ ค้นหาคำที่แน่นอน เราจะใช้ตัวเลือก -w:
grep -w bosques /home/pablinux/Documentos/vacaciones.txt
คำสั่งดังกล่าวจะค้นหา "ป่า" โดยไม่สนใจเรนเจอร์ในไฟล์ "vacation.txt" ในเส้นทางที่ระบุ หากสิ่งที่เราต้องการคือการค้นหาคำสองคำที่แตกต่างกันเราจะใช้คำสั่ง นกกระยาง:
egrep -w bosques|plantas /ruta/del/archivo
รู้ว่าคำปรากฏในไฟล์กี่ครั้ง
grep มันยังมีความสามารถ นับจำนวนครั้งที่คำปรากฏ ในไฟล์ สำหรับสิ่งนี้เราจะใช้ตัวเลือก -c:
grep -c prueba /ruta/al/archivo
การเพิ่มตัวเลือก -n สิ่งที่เราจะเห็นคือจำนวนบรรทัดที่คำนั้นปรากฏขึ้น
การค้นหาแบบย้อนกลับ
เรายังสามารถทำสิ่งที่ตรงกันข้ามนั่นคือ ค้นหาบรรทัดที่ไม่มีคำ. สำหรับสิ่งนี้เราจะใช้ตัวเลือก -v ซึ่งจะเป็นดังนี้:
grep -v la ruta/al/archivo
คำสั่งดังกล่าวจะแสดงบรรทัดทั้งหมดที่ไม่มีคำว่า "the" สิ่งนี้มีประโยชน์ในเอกสารหรือรายการที่มีการใช้คำซ้ำหลาย ๆ ครั้งและด้วยเหตุผลบางประการเราจำเป็นต้องเข้าถึงส่วนที่เหลือของบรรทัด
การเข้าถึงข้อมูลระบบด้วย grep
grep ไม่เพียง แต่สามารถค้นหาภายในไฟล์เท่านั้น นอกจากนี้ยังเป็น สามารถดูข้อมูลระบบ. ในภาพหน้าจอก่อนหน้านี้เราสามารถดูได้ว่ามันแสดงให้เราเห็นว่าเรามีพีซีรุ่นใด (ฉันรู้ว่ามันไม่ใช่แล็ปท็อปที่ทรงพลังที่สุดในโลก) สำหรับสิ่งนี้เราได้ใช้คำสั่ง:
cat /proc/cpuinfo | grep -i 'Model'
O ดี:
grep -i 'Model' /proc/cpuinfo
หากสิ่งที่เราต้องการคือการดูชื่อของดิสก์ยูนิตที่เราจะเขียน:
dmesg | egrep '(s|h)d[a-z]'
วิธีแสดงเฉพาะชื่อไฟล์ที่ตรงกัน
หากเราต้องการดูรายการที่มีเฉพาะชื่อไฟล์ที่ตรงกับการค้นหาเราจะใช้ตัวเลือก -l ดังที่แสดงด้านล่าง:
grep -l 'main' *.c
และถ้าเราต้องการเห็นคำเป็นสีเราจะเขียน:
grep --color palabra /ruta/al/archivo
อย่างที่คุณเห็นคำสั่ง grep เป็น เครื่องมือที่มีประสิทธิภาพมาก มันคุ้มค่ามากโดยเฉพาะอย่างยิ่งในกรณีที่เราจำไม่ได้ว่าเราเขียนอะไรหรือเขียนโปรแกรมไว้ที่ไหน นอกจากนี้ยังช่วยให้เราค้นหาข้อมูลระบบในแบบที่คนรัก Terminal จะต้องชอบ คำแนะนำเกี่ยวกับคำสั่งในการค้นหาข้อความมีประโยชน์กับคุณหรือไม่ grep?
Hello!
เมื่อคุณบอกว่า Grep ใช้ในการค้นหาไฟล์ฉันคิดว่ามันไม่ถูกต้องเพราะถ้าคุณเรียกใช้ grep EXPRESSION และไม่ส่งผ่านไฟล์ไปมันจะรอการป้อนข้อมูลจากอินพุตมาตรฐาน
ตามหน้าคู่มือ:
grep ค้นหาไฟล์อินพุตที่ระบุชื่อสำหรับบรรทัดที่มีการจับคู่กับรูปแบบที่กำหนด หากไม่มีการระบุไฟล์ใด ๆ หรือหากระบุไฟล์“ -” grep จะค้นหาอินพุตมาตรฐาน
ดังนั้นคุณสามารถใช้มันในไปป์ไลน์เช่นเดียวกับที่คุณแยกวิเคราะห์ผลลัพธ์ของ / proc / cpuinfo โดยส่งเอาต์พุตของคำสั่งนี้เป็นอินพุตไปยัง grep คุณสามารถทำการค้นหาได้
อาศิรพจน์
โพสต์ได้ดีมาก
คุณอธิบายได้ดีมากและคุณตรงประเด็น