วิธีใช้คำสั่ง zgrep และ zipgrep เพื่อค้นหาไฟล์บีบอัด

คู่มือนี้จะแสดงวิธีค้นหาไฟล์บีบอัดบน a ลินุกซ์ คอมพิวเตอร์สำหรับสตริงข้อความหรือนิพจน์เฉพาะ

วิธีการค้นหาและกรองผลลัพธ์โดยใช้คำสั่ง grep

หนึ่งในคำสั่ง Linux ที่ทรงพลังที่สุดคือ grep ซึ่งย่อมาจาก Global Regular Expressions Print คุณสามารถใช้ grep เพื่อค้นหารูปแบบภายในเนื้อหาของไฟล์หรือผลลัพธ์จากคำสั่งอื่น

ตัวอย่างเช่น เรียกใช้คำสั่งต่อไปนี้ ps คำสั่ง เพื่อดูรายการกระบวนการที่ทำงานบนคอมพิวเตอร์ของคุณ:

ps -ef

ผลการเลื่อนบนหน้าจออย่างรวดเร็ว หากมีผลลัพธ์จำนวนมาก จะทำให้การดูข้อมูลเกิดความสับสน

คำสั่ง Linux ps

ในการหยุดการเลื่อนหน้า ใช้ คำสั่งเพิ่มเติม เพื่อแสดงรายการผลลัพธ์ครั้งละหนึ่งหน้าดังนี้:

ps -ef | มากกว่า. 

แม้ว่าผลลัพธ์จากคำสั่งด้านบนจะดีกว่าคำสั่งก่อนหน้า แต่คุณยังต้องเลื่อนดูผลลัพธ์เพื่อค้นหาสิ่งที่คุณต้องการ

คำสั่ง grep ทำให้สามารถกรองผลลัพธ์ตามเกณฑ์ที่คุณส่งไป ตัวอย่างเช่น การค้นหากระบวนการทั้งหมดโดยตั้งค่า UID เป็น รากให้รันคำสั่งต่อไปนี้:

ps -ef | ราก grep 
Linux ps พร้อม grep

คำสั่ง grep ยังทำงานบนไฟล์ ลองนึกภาพว่าคุณมีไฟล์ที่มีรายชื่อหนังสือ และคุณต้องการดูว่าไฟล์นั้นมี หนูน้อยหมวกแดง. คุณสามารถค้นหาไฟล์ได้ดังนี้:

grep รายการหนังสือ "หนูน้อยหมวกแดง" 
ไฟล์ Linux grep

NS คำสั่ง grep มีประสิทธิภาพและสามารถใช้สวิตช์ที่มีประโยชน์มากมาย

วิธีค้นหาไฟล์บีบอัดโดยใช้คำสั่ง zgrep

เครื่องมือที่รู้จักกันน้อยแต่ทรงพลังมากคือ zgrep คำสั่ง zgrep ให้คุณค้นหาเนื้อหาของไฟล์บีบอัดโดยไม่ต้องแตกเนื้อหาก่อน คำสั่ง zgrep สามารถใช้กับ zip ไฟล์ หรือไฟล์บีบอัดโดยใช้ คำสั่ง gzip.

อะไรคือความแตกต่าง? ไฟล์ zip สามารถมีได้หลายไฟล์ ในขณะที่ไฟล์ที่บีบอัดโดยใช้คำสั่ง gzip จะมีเฉพาะไฟล์ต้นฉบับ

หากต้องการค้นหาข้อความภายในไฟล์ที่บีบอัดด้วย gzip ให้ป้อนคำสั่งต่อไปนี้:

filetosearch นิพจน์ zgrep 

ตัวอย่างเช่น สมมติว่ารายชื่อหนังสือถูกบีบอัดโดยใช้ gzip คุณสามารถค้นหาข้อความ หนูน้อยหมวกแดง ในไฟล์บีบอัดโดยใช้คำสั่งต่อไปนี้:

zgrep "หนูน้อยหมวกแดง" bookslist.gz 
Linux zgrep

คุณสามารถใช้นิพจน์ใดก็ได้ และการตั้งค่าทั้งหมดที่มีให้ด้วยคำสั่ง grep ซึ่งเป็นส่วนหนึ่งของคำสั่ง zgrep

วิธีค้นหาไฟล์บีบอัดโดยใช้คำสั่ง zipgrep

คำสั่ง zipgrep ใช้เพื่อค้นหารูปแบบภายในไฟล์ zip คำสั่ง zgrep ทำงานได้ดีกับไฟล์ที่บีบอัดโดยใช้ gzip แต่ใช้งานไม่ได้กับไฟล์ที่บีบอัดโดยใช้ยูทิลิตี้ zip คุณสามารถใช้ zgrep ได้หากไฟล์ zip มีไฟล์เดียว แต่ไฟล์ zip ส่วนใหญ่มีมากกว่าหนึ่งไฟล์

ตัวอย่างเช่น สมมติว่าคุณมีไฟล์ชื่อ หนังสือ โดยมีชื่อเรื่องดังต่อไปนี้

  • แฮร์รี่ พอตเตอร์ กับ ห้องแห่งความลับ
  • การฝึกฝนของ Shrew
  • ของหนูและผู้ชาย
  • The Hitchhikers Guide to the Galaxy
  • แฮร์รี่ พอตเตอร์ กับภาคีนกฟีนิกซ์

ลองนึกภาพว่าคุณมีไฟล์ชื่อ ภาพยนตร์ โดยมีชื่อเรื่องดังต่อไปนี้

  • เดอะเมทริกซ์
  • แฮร์รี่ พอตเตอร์ กับ ห้องแห่งความลับ
  • แฮร์รี่ พอตเตอร์กับถ้วยอัคนี
  • Star Wars: ความหวังใหม่

ตอนนี้ ลองนึกภาพสองไฟล์นี้ถูกบีบอัดโดยใช้รูปแบบ zip เป็นไฟล์ชื่อ media.zip. คุณสามารถใช้คำสั่ง zipgrep เพื่อค้นหารูปแบบในไฟล์ภายในไฟล์ zip ตัวอย่างเช่น:

ชื่อไฟล์รูปแบบ zipgrep 

เพื่อค้นหาเหตุการณ์ทั้งหมดของ แฮร์รี่พอตเตอร์, ใช้คำสั่งต่อไปนี้:

zipgrep "แฮร์รี่ พอตเตอร์" media.zip 

ผลลัพธ์จะเป็นดังนี้:

หนังสือ แฮร์รี่ พอตเตอร์ กับ ห้องแห่งความลับ
หนังสือ แฮร์รี่ พอตเตอร์ กับภาคีนกฟีนิกซ์
ภาพยนตร์: แฮร์รี่ พอตเตอร์ กับ ห้องแห่งความลับ
ภาพยนตร์: แฮร์รี่ พอตเตอร์กับถ้วยอัคนี.
ลินุกซ์ zipgrep

เนื่องจากคุณสามารถใช้นิพจน์ใดๆ กับ zipgrep ที่คุณสามารถใช้ได้กับ grep สิ่งนี้ทำให้เครื่องมือนี้ดีมาก มีประสิทธิภาพ และทำให้การค้นหาไฟล์ zip ง่ายกว่าการคลายการบีบอัด การค้นหา และการบีบอัด อีกครั้ง.

หากคุณต้องการค้นหาเฉพาะไฟล์บางไฟล์ภายในไฟล์ zip ให้ระบุไฟล์ที่จะค้นหาภายในไฟล์ zip เป็นส่วนหนึ่งของคำสั่งดังนี้:

zipgrep ภาพยนตร์ "Harry Potter" media.zip 

ผลลัพธ์จะเป็นดังนี้:

ภาพยนตร์: แฮร์รี่ พอตเตอร์ กับ ห้องแห่งความลับ
ภาพยนตร์: แฮร์รี่ พอตเตอร์กับถ้วยอัคนี.
Linux zipgrep ค้นหาตามไฟล์

หากคุณต้องการค้นหาไฟล์ทั้งหมดยกเว้นไฟล์เดียว ให้ใช้คำสั่งต่อไปนี้:

zipgrep "Harry Potter" media.zip -x หนังสือ 

สิ่งนี้สร้างผลลัพธ์เหมือนเดิมเมื่อค้นหาไฟล์ทั้งหมดภายใน media.zip ยกเว้นหนังสือ