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

Рассмотрим даты в формате 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» с расширением параметра. Вам, вероятно, потребуется изменить этот код, чтобы получить «дату» подходящим способом для вашего реального сценария.

  • Измените разделитель в Zsh% _
  • Где задана функция, заданная «подсказка»?
  • Использование редактора строк zsh для обтекания подпроцессов
  • Ярлыки каталогов в буфере emacs
  • Отправить копию вывода скрипта в файл
  • / usr / bin / env: zsh -: нет такого файла или каталога
  • история показывает только текущую сессию
  • Можно ли определить чувствительные к каталогу псевдонимы в zsh (или любой другой оболочке)?
  • Как настроить zsh, чтобы он объяснил мне, где я могу получить исполняемый файл вместо того, чтобы сказать, что файл не найден?
  • Удалить keymap и полностью отключить ключ в zsh
  • Как создать строку с недопустимыми символами юникода, в Zsh?
  • Linux и Unix - лучшая ОС в мире.