У меня есть файл с полным маршрутом файлов и отметками времени.
xxxx/view/css/animate.css/3.1.1/animate.min.css: 1494509091
xxxx/view/fonts/cinzel/fonts.css: 1494509091
xxxx/view/fonts/garamondcondot-book/fonts.css: 1494509092
xxxx/view/fonts/gotham-narrow/fonts.css: 1494509092
xxxx/view/fonts/gotham/fonts.css: 1494509092
xxxx/view/fonts/greatvibes/fonts.css: 1494509092
xxxx/view/fonts/indie-flower/fonts.css: 1494509092
xxxx/view/fonts/katibeh/fonts.css: 1494509092
xxxx/view/fonts/lobster-two/fonts.css: 1494509092
xxxx/view/fonts/museo/fonts.css: 1494509092
xxxx/view/fonts/myriad-pro/fonts.css: 1494509092
Задача - проверить дату последнего изменения каждого файла с помощью журнала git. Это хорошо и работает с этой командой:
sed -E 's|(.*): .*|echo \1: $(git log -1 --pretty="format:%ct" \1)|e' file.yml
Это очень хорошо и полезно, но я обнаружил проблему. Поскольку существует более 500 файловых маршрутов, у меня был файл, о котором у меня нет информации в журнале git. И проблема в том, что эти файлы я не могу получить обратно из команды sed. Правильный способ будет, если есть новая информация о временной метке из git log change, иначе ничего не делать, поэтому оставьте старую.
Пример: Если у меня нет информации в git log i получил эту информацию об ошибке:
fatal: ambiguous argument 'xxx/compiled/css/*FILENAME*': unknown revision or path not in the working tree.