Я пытаюсь написать скрипт для работы, чтобы автоматизировать некоторые отчеты о выходе. Файлы журнала (в настоящее время это «стандартизация» в будущем) хранятся в такой структуре путей:
/<root_path>/<process_one_path>/logs/<time_date_stamp>/<specific_log_file>
/<root_path>/<process_two_path>/logs/<different_time_date_stamp>/<specific_log_file>
Известна каждая часть пути, кроме меток даты и времени, которые всегда являются самыми последними в папке.
Если я попытаюсь использовать подстановочный знак вместо метки даты и времени, я получу несколько результатов, например:
> ls /<root_path>/<process_two_path>/logs/* [tab]
20130102-175103
20130118-090859
20130305-213506
Я только хочу вернуть последнюю версию, возможно ли это с Bash?
NB (у меня нет zsh, и как бы мило это не звучало, я сомневаюсь, что мы когда-нибудь получим его на работе)
-1
). Это было добавлено в Bash 4.2. RHEL5, вероятно, является самым старым поддерживаемым общедоступным корпоративным дистрибутивом и использует bash 4.2.20.bash
имеют:"${list[@]: -1}"
как вksh93
([-1]
исходит отzsh
).3.2
. RHEL 3 и 4 все еще поддерживаются в течение продленного срока.POSIXly:
Поскольку вы упоминаете
zsh
:источник
Используйте шар bash в цикле bash for. Нравится:
Это зависит от того, что bash выполняет расширение глобуса, отсортированное по алфавиту. Прочтите руководство по bash для получения дополнительной информации. Обратите внимание, что это зависит от LC_COLLATE . Это также зависит от того факта, что переменная по-
filename
прежнему содержит последнее значение после завершения цикла.Если вам нужно имя файла с самой старой отметкой времени, вы можете сделать это следующим образом:
источник
-1 по умолчанию в конвейерах, и вывод ls уже должен быть отсортирован:
Если другие искали, как вставить первый или последний результат в интерактивном режиме, вы можете связать menu-complete или menu-complete-backward в .inputrc:
Если функция show-all-if-ambiguous включена,
set completion-query-items 0
удаляет запрос, если имеется 101 или более результатов, иset page-completions off
отключает пейджер.источник
Должен сделать свое дело.
источник
ls
. Когда-либо.