Задать вопрос

Найти имена файлов в зависимости от месяца. Как?

Есть следующие файлы:

01.01.2018.7z
30.11.2018.7z
02.02.2018.7z
30.04.2018.7z


Хочу найти все файлы, исключая те, которые относятся к последним числам месяца. К таким относятся файлы 2 и 4 в списке (в обоих месяцах 30 дней в году.)

Вот так вот ищет отдельно всё, кроме ноября:
find /mnt/zd-backup ! -name "30.11*"

01.01.2018.7z
02.02.2018.7z
30.04.2018.7z


а так, всё кроме апреля:
find /mnt/zd-backup ! -name "30.04*"

01.01.2018.7z
30.11.2018.7z
02.02.2018.7z


Но как мне объедить такой поиск в одну строку? Ведь месяцев c 30 днями 4 шт. в году.

Пробовал вот так, но не дало результата:
find /mnt/zd-backup ! -name "30.(04|11)*"
  • Вопрос задан
  • 118 просмотров
Подписаться 1 Средний Комментировать
Пригласить эксперта
Ответы на вопрос 3
lidacriss
@lidacriss
wtf
find /mnt/zd-backup -regextype posix-extended -regex '0\d\.\d+\.\d+\.7z'
Ответ написан
shambler81
@shambler81 Куратор тега Linux
1 вариант | grep -v "шаблон " | grep -v "шаблон2"
2.вариант
find /mnt/zd-backup -type f -regex "30\.\(04\|11\)"
- кто за вас спецсимволы будет экранировать ?
Ответ написан
Комментировать
@q2digger
никого не трогаю, починяю примус
попробуйте
find /mnt/zd-backup ! \( -name "30.04" -o -name "30.11"\)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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