У меня есть следующий скрипт 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