У меня есть следующий скрипт bash.
while IFS= read -r filename; do [[ $(md5 path/to/"$filename-orig") = $(md5 path/to/"$filename") ]] || echo $filename differs; done < path/to/list-of-files-to-compare.txt Предполагается сравнить два файла (вычисляя их хэш-дайджест MD5), а затем сообщить, отличаются ли они. Он получает файлы для сравнения из списка.
Проблема в том, что если файл, который я пытаюсь прочитать, находится, скажем, в
path/to/foo-orig.js скрипт будет искать файл в
path/to/foo.js-orig и, очевидно, это выдает ошибку и завершается ошибкой.
Как исправить эту ошибку в моем скрипте, чтобы .jsправильно обрабатывать расширение?
редактировать
TL; DR:
Учитывая строку, foo.barкак я могу получить foo-orig.bar?
Edit2:
Я добавляю -origрасширение, потому что этот проект использует шаблон, который регулярно обновляется третьей стороной, и затем я накладываю на него свои изменения. Итак, я хочу отслеживать, какие файлы они меняют, чтобы я мог вернуться и адаптировать свой код при необходимости.
list-of-files-to-compare.txt выглядит следующим образом.
список-оф-файлов к compare.txtpublic/assets/images/logos/logo.svg README.md src/auth/Auth.js src/auth/store/actions/login.actions.js src/auth/store/actions/user.actions.js src/auth/store/reducers/user.reducer.js src/firebaseService/firebaseService.js src/firebaseService/firebaseServiceConfig.js src/fuse-configs/fuseNavigationConfig.js src/fuse-configs/fuseRoutesConfig.js src/index.js src/main/content/components/ComponentsConfig.js src/main/content/login/Login.js src/store.js src/store/actions/index.js src/store/reducers/index.js
Почему вы добавляете
-orig? Как выглядитlist-of-files-to-compare.txt?