Расширение имени файла с диапазонов дат

Рассмотрим даты в формате ISO 8601 , т.е. 'YYYY-MM-DD' , например 2015-01-28 , и скажем, что у нас есть папка с файлами формы:

 AAAA_<date>_BBBB 

Я ищу шаблон glob в zsh (или Bash), который я мог бы использовать для указания файлов между двумя датами.

Например, скажем, я хочу скопировать файлы между 2014-12-15 и 2015-02-03 . Есть ли простой способ создания выражения glob для ссылки на файлы между этими двумя датами (включая их)?

Следующие могут помочь (из лексикографического порядка ):

Важная эксплуатация лексикографического упорядочения выражается в схеме форматирования даты ISO 8601, которая выражает дату как YYYY-MM-DD. Это упорядочение дат дает возможность простой компьютеризированной сортировки дат, так что алгоритму сортировки не нужно обрабатывать числовые части строки даты иначе, чем строка нечисловых символов, а даты будут отсортированы в хронологическом порядке.

One Solution collect form web for “Расширение имени файла с диапазонов дат”

Хорошо, что вы отметили вопрос с помощью zsh , так как в этой оболочке вы можете использовать расширенные квалификаторы glob, включая тест, выполненный по именам файлов:

 $ ls -1 AAAA* AAAA_2012-10-03_BBBB AAAA_2014-12-28_BBBB AAAA_2015-01-03_BBBB AAAA_2015-02-03_BBBB AAAA_2015-10-03_BBBB $ d1='2014-12-15' $ d2='2015-02-03' $ print -l *(e:'[[ "${${REPLY#*_}%_*}" > "$d1" && "${${REPLY#*_}%_*}" < "$d2" ]]':) AAAA_2014-12-28_BBBB AAAA_2015-01-03_BBBB 

Обратите внимание, что для данного формата даты вы можете выполнить простое сравнение строк.

Я предположил, что ваши файлы называются AAAA_date_BBBB как в вопросе, и извлекли часть «date» с расширением параметра. Вам, вероятно, потребуется изменить этот код, чтобы получить «дату» подходящим способом для вашего реального сценария.

  • Почему `setopt nohup` требуется, чтобы сделать работу nohup watch в zsh?
  • Доступ к элементу случайного массива в ZSH
  • Zsh: сделать стрелку вверх пропустить идентичные команды
  • Автоматическое отображение меню завершения по типу
  • Цветной вывод терминала игнорирует последовательность сброса. Цвет продолжается
  • Расширяет ли расширение zsh по-разному в неинтерактивных скриптах?
  • Могу ли я автоматически заполнять вкладку в zsh с регулярным выражением
  • Поиск тестируемой утилиты для получения абсолютного пути к относительной целевой символической ссылке
  • Как я могу остановить Z-оболочку от сговора, чтобы вмешаться в вывод GNU Make?
  • Как я могу расширить все переменные в командной строке в Zsh?
  • Что означает: $ {param: = значение} означает?
  • Linux и Unix - лучшая ОС в мире.