คู่มือนี้จะแสดงวิธีการค้นหาไฟล์บีบอัดสำหรับสตริงข้อความหรือสำนวนเฉพาะ
วิธีการค้นหาและกรองผลลัพธ์โดยใช้คำสั่ง Grep
หนึ่งในคำสั่ง Linux ที่ทรงพลังที่สุดคือ grep ซึ่งย่อมาจาก "Global Regular Expression Print"
คุณสามารถใช้ grep เพื่อค้นหารูปแบบภายในเนื้อหาของไฟล์หรือผลลัพธ์จากคำสั่งอื่น
ตัวอย่างเช่นถ้าคุณเรียกใช้ คำสั่ง ps ต่อไปนี้คุณจะเห็นรายการของกระบวนการที่กำลังทำงานอยู่ในคอมพิวเตอร์ของคุณ
ps -ef
ผลการค้นหาจะเลื่อนไปที่หน้าจอได้อย่างรวดเร็วและหากมีผลลัพธ์เป็นจำนวนมาก ทำให้ดูข้อมูลเจ็บปวดโดยเฉพาะ
แน่นอนคุณสามารถใช้ คำสั่งเพิ่มเติม เพื่อแสดงรายการผลลัพธ์หนึ่งหน้าในเวลาดังนี้
ps -ef | มากกว่า
ขณะที่ผลลัพธ์จากคำสั่งข้างต้นดีกว่าก่อนหน้านี้คุณยังคงต้องผ่านหน้าผลเพื่อหาสิ่งที่คุณกำลังมองหา
คำสั่ง grep ทำให้สามารถกรองผลลัพธ์ตามเกณฑ์ที่คุณส่งไปได้ ตัวอย่างเช่นการค้นหากระบวนการทั้งหมดโดย UID ที่ตั้งค่าเป็น 'root' ให้รันคำสั่งต่อไปนี้:
ps -ef | root grep
คำสั่ง grep ยังทำงานกับไฟล์ ลองนึกภาพคุณมีไฟล์ที่มีรายการชื่อหนังสือ ลองนึกภาพคุณต้องการดูว่าไฟล์มี "Little Red Riding Hood" หรือไม่ คุณสามารถค้นหาไฟล์ได้ดังนี้:
grep "Little Red Riding Hood" รายการหนังสือ
คำสั่ง grep มีประสิทธิภาพมากและบทความนี้จะแสดงสวิทช์ที่เป็นประโยชน์มากที่สุดที่สามารถใช้ร่วมกันได้
วิธีการค้นหาไฟล์บีบอัดโดยใช้คำสั่ง zgrep
เครื่องมือที่รู้จักกันน้อย แต่มีประสิทธิภาพมากคือ zgrep คำสั่ง zgrep ช่วยให้คุณค้นหาเนื้อหาของไฟล์บีบอัดโดยไม่ต้องแยกเนื้อหาออกก่อน
คำสั่ง zgrep สามารถใช้ได้กับ ไฟล์ zip หรือไฟล์ที่บีบอัดโดยใช้ คำสั่ง gzip
อะไรคือความแตกต่าง?
ไฟล์ zip สามารถมีได้หลายไฟล์ในขณะที่ไฟล์บีบอัดโดยใช้คำสั่ง gzip จะมีเฉพาะไฟล์ต้นฉบับเท่านั้น
หากต้องการค้นหาข้อความภายในไฟล์ที่บีบอัดด้วย gzip คุณสามารถป้อนคำสั่งต่อไปนี้:
zgrep expression filetosearch
ตัวอย่างเช่นสมมติว่ารายการหนังสือได้รับการบีบอัดโดยใช้ gzip คุณสามารถค้นหาข้อความ "เสื้อขี่ม้าสีแดงเล็ก ๆ น้อย ๆ " ในไฟล์บีบอัดโดยใช้คำสั่งต่อไปนี้:
zgrep "Little Red Riding Hood" bookslist.gz
คุณสามารถใช้นิพจน์ใด ๆ และการตั้งค่าทั้งหมดที่พร้อมใช้งานผ่านคำสั่ง grep ในฐานะส่วนหนึ่งของคำสั่ง zgrep
วิธีการค้นหาแฟ้มที่บีบอัดโดยใช้คำสั่ง zipgrep
คำสั่ง zgrep ทำงานได้ดีกับไฟล์ที่บีบอัดโดยใช้ gzip แต่ไม่สามารถทำงานได้ดีในไฟล์ที่ถูกบีบอัดโดยใช้ยูทิลิตี zip
คุณสามารถใช้ zgrep ได้หากไฟล์ zip มีไฟล์เดียว แต่ไฟล์ซิปส่วนใหญ่มีมากกว่าหนึ่งไฟล์
คำสั่ง zipgrep ใช้เพื่อค้นหารูปแบบภายในไฟล์ซิป
ตัวอย่างเช่นสมมติว่าคุณมีไฟล์ชื่อหนังสือที่มีชื่อต่อไปนี้:
- Harry Potter และห้องแห่งความลับ
- การฝึกให้งู
- ของหนูและผู้ชาย
- คู่มือการขับขี่ไปยังกาแลคซี
- Harry Potter และคำสั่งของฟีนิกซ์
ลองจินตนาการว่าคุณมีไฟล์ชื่อว่าภาพยนตร์ที่มีชื่อเรื่องต่อไปนี้
- เดอะเมทริกซ์
- Harry Potter และห้องแห่งความลับ
- แฮร์รี่พอตเตอร์และกุณโฑไฟ
- Star Wars - ความหวังใหม่
ตอนนี้จินตนาการทั้งสองไฟล์ถูกบีบอัดโดยใช้รูปแบบซิปลงในไฟล์ที่เรียกว่า media.zip
คุณสามารถใช้คำสั่ง zipgrep เพื่อค้นหารูปแบบภายในไฟล์ทั้งหมดภายในไฟล์ซิป ตัวอย่างเช่น:
ชื่อไฟล์รูปแบบ zipgrep
ตัวอย่างเช่นสมมติว่าคุณต้องการค้นหาเหตุการณ์ทั้งหมดของ "Harry Potter" คุณจะใช้คำสั่งต่อไปนี้:
zipgrep "Harry Potter" มีเดีย .zip
ผลลัพธ์จะเป็นดังนี้:
หนังสือ: แฮร์รี่พอตเตอร์กับห้องแห่งความลับ
หนังสือ: Harry Potter และคำสั่งของฟีนิกซ์
ภาพยนตร์: Harry Potter และห้องแห่งความลับ
ภาพยนตร์: Harry Potter และกุณโฑแห่งไฟ
คุณสามารถใช้นิพจน์ใด ๆ กับ zipgrep ที่คุณสามารถใช้กับ grep ซึ่งจะทำให้เครื่องมือมีประสิทธิภาพมากและทำให้การค้นหาไฟล์ซิปทำได้ง่ายกว่าการคลายการบีบอัดการค้นหาและบีบอัดอีกครั้ง
หากคุณต้องการค้นหาไฟล์บางไฟล์ภายในไฟล์ซิปเท่านั้นคุณสามารถระบุไฟล์เพื่อค้นหาภายในไฟล์ zip ซึ่งเป็นส่วนหนึ่งของคำสั่งดังต่อไปนี้
zipgrep "Harry Potter" ภาพยนตร์ media.zip
ผลลัพธ์จะเป็นดังนี้
ภาพยนตร์: Harry Potter และห้องแห่งความลับ
ภาพยนตร์: Harry Potter และกุณโฑแห่งไฟ
หากคุณต้องการค้นหาไฟล์ทั้งหมดยกเว้นไฟล์ที่คุณสามารถใช้คำสั่งต่อไปนี้:
zipgrep "Harry Potter" หนังสือ media.zip -x
การดำเนินการนี้จะให้ผลลัพธ์เช่นเดียวกับก่อนเนื่องจากเป็นการค้นหาไฟล์ทั้งหมดภายใน media.zip ยกเว้นหนังสือ