J'ai le bash script suivant.
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
Il est censé comparer deux fichiers (en calculant leur condensé de hachage MD5) puis signaler s'ils sont différents. Il récupère les fichiers à comparer dans une liste.
Le problème est que si le fichier que j'essaie de lire se trouve à, disons,
path/to/foo-orig.js
le script cherchera le fichier à
path/to/foo.js-orig
et, bien évidemment, cela déclenche une erreur et échoue.
Comment puis-je corriger ce bogue dans mon script de manière à gérer la .js
correctement ?
Modifier
TL;DR :
Étant donné une chaîne de caractères foo.bar
comment puis-je obtenir foo-orig.bar
?
Edit2 :
J'ajoute le -orig
extension parce que ce projet prend un modèle qui est régulièrement mis à jour par un tiers, puis j'y superpose mes modifications. Je veux donc garder la trace des fichiers qu'ils modifient afin de pouvoir revenir en arrière et adapter mon code si nécessaire.
Le fichier list-of-files-to-compare.txt ressemble à ce qui suit.
liste-de-fichiers-à-comparer.txt
public/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
0 votes
Pourquoi ajoutez-vous
-orig
en premier lieu ? Comment lelist-of-files-to-compare.txt
ressembler ?0 votes
@ArkadiuszDrabczyk : Les modifications apportées aident-elles à répondre à vos questions ?