Что самый легкий путь к zgrep определенному шаблону?

Мне нужно к zgrep определенному промежутку времени, например: from 1/Oct/2014 to 31/Mar/2015.

Я пытался сделать это как это:

find . -name \*.* | xargs zgrep -E '/Oct/2014 | /Nov/2014 | /Dec/2014 | /Jan/2015 | /Feb/2015 | /Mar/2015 | /Feb/2015'| /Mar/2015'

но это не работало. Я ожидал бы в течение длительного промежутка времени, и я не закончу ни с чем.

Я предполагаю не важный, но мой stucture похож:

~/Desktop/logs
├── first_folder
|   ├── 11.11 (folder)
│   |   ├── access_log
│   |   ├── access_log.1.gz
│   |   :
│   |   └── access_log.40.gz
|   └── 11.12 (folder)
│       ├── access_log
│       ├── access_log.1.gz
│       :
│       └── access_log.16.gz
├── second_folder (folder)
|   ├── 31.11 (folder)
│   |   ├── access_log
│   |   ├── access_log.1.gz
│   |   :
│   |   └── access_log.20.gz
|   └── 31.15 (folder)
│       ├── access_log
│       ├── access_log.1.gz
│       :
:       └── access_log.38.gz
└── last_folder
    ├── 91.11 (folder)
    |   ├── access_log
    |   ├── access_log.1.gz
    |   :
    |   └── access_log.25.gz
    └── 91.15 (folder)
        ├── access_log
        ├── access_log.1.gz
        :
        └── access_log.30.gz
0
задан 22 September 2016 в 22:01

1 ответ

Вероятно группировка является Вашим другом здесь

zgrep -E '/(Oct|Nov|Dec)/2014|/(Jan|Feb|Mar)/2015'

так что-то как

find . -type f -name 'access_log*' -exec zgrep -E '/(Oct|Nov|Dec)/2014|/(Jan|Feb|Mar)/2015' {} +
2
ответ дан 28 September 2019 в 13:16

Другие вопросы по тегам:

Похожие вопросы: