Привет,
Мне нужно сохранить имя файла журнала в переменной, чтобы мой скрипт мог выполнять некоторые проверки файлов ежедневного журнала. У этих журналов всегда есть другое имя, потому что у них есть метка времени в имени. В настоящее время я использую метод hodge podged, который передает команду ls в sed, sort, cut и tail для получения имени.
CRON_LOG=$(ls -1 $LOGS_DIR/fetch_cron_{true,false}_$CRON_DATE*.log 2> /dev/null | sed 's/^[^0-9][^0-9]*\([0-9][0-9]*\).*/\1 &/' | sort -n | cut -d ' ' -f2- | tail -1 )
UPDATE:
$ CRON_DATE предоставляется в качестве аргумента скрипту. Это дата (до дня), когда был создан журнал. Иногда в один и тот же день могут существовать несколько журналов, поэтому я хочу, чтобы это было самым последним.
Некоторые типичные имена файлов:
fetch_cron_false_031810090452.log
fetch_cron_true_031310090001.log
и т.д ...
Пожалуйста, имейте в виду, что это работает как есть. Я просто думаю, что это некрасиво, и пытаюсь найти лучший способ справиться с этим.
Я почти уверен, что соединил это с некоторыми материалами, которые я нашел в Google несколько месяцев назад. это работает сейчас, но я не очень доволен техникой. У меня есть некоторые идеи о том, как сделать это лучше, но я уже имел большой успех на этом сайте и подумал, что лучше сначала обратиться к богам стека переполнения. Все ответы приветствуются.
Спасибо,
Райан