ฉันมีไฟล์ zip 348 ไฟล์และฉันต้องการค้นหาไฟล์ที่อยู่ในไฟล์ zip อย่างใดอย่างหนึ่งunzip -l
ไม่ทำงานกับ wild card ใช่ไหม
ฉันจะแสดงรายการเนื้อหาของ.zip
ไฟล์ทั้งหมดและgrep
ผ่านรายการที่รวมของไฟล์ทั้งหมดที่มีอยู่ในรหัสไปรษณีย์ได้อย่างไร
ฉันมีไฟล์ zip 348 ไฟล์และฉันต้องการค้นหาไฟล์ที่อยู่ในไฟล์ zip อย่างใดอย่างหนึ่งunzip -l
ไม่ทำงานกับ wild card ใช่ไหม
ฉันจะแสดงรายการเนื้อหาของ.zip
ไฟล์ทั้งหมดและgrep
ผ่านรายการที่รวมของไฟล์ทั้งหมดที่มีอยู่ในรหัสไปรษณีย์ได้อย่างไร
คำตอบ:
การใช้zipinfo
เป็นทางออกที่ดีที่นี่ อย่างไรก็ตามโดยทั่วไปเมื่อใดก็ตามที่คุณต้องการใช้คำสั่งกับรายการไฟล์และคำสั่งไม่ยอมรับรายการไฟล์คุณสามารถใช้การfor
วนซ้ำได้:
for file in *.zip; do
unzip -l "$file"
done \
| grep "\.zip\|setup"
หากไฟล์ที่คุณกำลังค้นหามีช่องว่างในมันเหมือน: your file
ในการแสดงออกปกติ grep grep "\.zip\|your\ file"
คุณต้องหนีพื้นที่ที่มีการทับขวาเหมือนทุก
unzip
แล้วว่าน่าอายแค่ไหน
find
แทน
zipinfo
คุณสามารถใช้ มันรวมอยู่ในการติดตั้งเริ่มต้นของ Ubuntu ตรวจสอบหน้าคู่มือสำหรับข้อมูลเพิ่มเติม
ตัวอย่างเช่นหากต้องการค้นหารูปแบบsetup
ในไฟล์ zip ในไดเร็กทอรีปัจจุบันให้ใช้คำสั่งนี้:
find ./ -iname *zip 2> /dev/null -print0 | xargs -0 zipinfo | grep setup
caution: filename not matched: case1.zip
... caution: filename not matched: case348.zip
สำหรับทุก zip ทดสอบบน Ubuntu OS สองอัน, 11.10 และ 12.04
setup
และทำให้เกิดข้อผิดพลาดเหมือนกันถึงแม้ว่ามันจะทำงานได้เช่นนี้:zipinfo -l * | grep "setup"
ในการแสดงรายการไฟล์ในไฟล์ zip คุณสามารถใช้คำสั่งต่อไปนี้
unzip -l
หากต้องการ grep ไฟล์บีบอัดที่บีบอัดคุณควรใช้ยูทิลิตี้บีบอัดไฟล์เก็บถาวรที่สร้างขึ้นเพื่อทำงานกับรูปแบบไฟล์เก็บถาวรแบบนั้น
สำหรับไฟล์เก็บถาวร zip:
zipgrep --help
usage: zipgrep [egrep_options] pattern zipfile [members...]
Uses unzip and egrep to search the zip members for a string or pattern.
สำหรับคลังเก็บ tar:
zgrep --help
Usage: /bin/zgrep [OPTION]... [-e] PATTERN [FILE]...
Look for instances of PATTERN in the input FILEs, using their
uncompressed contents if they are compressed.
OPTIONs are the same as for 'grep'.
มีเครื่องมืออีกสองสามอย่างที่ทำงานกับคลังเก็บด้วยเช่นกัน คุณสามารถส่งท่อออกไปใส่ grep เพื่อทำสิ่งเดียวกัน
zcat
zcat my.archive.zip | grep "some text"
หรือคุณสามารถใช้ฟังก์ชันการค้นหาของเครื่องมือเหล่านี้
zless
zmore