วิธีค้นหาไฟล์ที่บีบอัดโดยใช้ Linux

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

วิธีการค้นหาและกรองผลลัพธ์โดยใช้คำสั่ง 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 ใช้เพื่อค้นหารูปแบบภายในไฟล์ซิป

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

ลองจินตนาการว่าคุณมีไฟล์ชื่อว่าภาพยนตร์ที่มีชื่อเรื่องต่อไปนี้

ตอนนี้จินตนาการทั้งสองไฟล์ถูกบีบอัดโดยใช้รูปแบบซิปลงในไฟล์ที่เรียกว่า 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 ยกเว้นหนังสือ