การเรียกซ้ำเพียงอย่างเดียวนั้นง่าย:
-r, --recursive
Read all files under each directory, recursively, following
symbolic links only if they are on the command line. This is
equivalent to the -d recurse option.
-R, --dereference-recursive
Read all files under each directory, recursively. Follow all
symbolic links, unlike -r.
อย่างไรก็ตามสำหรับไฟล์บีบอัดที่คุณต้องการ:
shopt globstar
for file in /path/to/directory/**/*gz; do zcat ""$file" | grep pattern; done
path/to/directory
ควรเป็นไดเรกทอรีหลักที่มีไดเรกทอรีย่อยสำหรับแต่ละวัน
zgrep
เป็นคำตอบที่ชัดเจน แต่น่าเสียดายที่มันไม่สนับสนุนการ-r
ตั้งค่าสถานะ จากman zgrep
:
ตัวเลือก grep เหล่านี้จะทำให้ zgrep ยกเลิกด้วยรหัสข้อผิดพลาด: (- [d rR zZ ] | --di * | --exc * | --inc * | --rec * | --nu *)
zgrep
:zgrep - search possibly compressed files for a regular expression