Bonjour,
je souhaite faire un script me permettant de comparer les noms des fichiers contenus dans deux répertoires ($rep1 et $rep2 dans le code).
Les fichiers que je souhaite comparer sont soumis à expression régulière (dans l'exemple, il s'agit de /(c|cpp)$/).
Je souhaite cependant pouvoir comparer de nombreuses paires de répertoires, chacune soumise à expression régulière différente (un autre répertoire pourrait n'être soumis qu'à /h$/ par exemple).
Mon soucis, c'est que je n'arrive pas à intégrer une expression régulière variable dans mon awk : pour pouvoir comparer 12 paires de répertoires (et donc, requérant 12 expressions régulières différentes), je suis obligé de dupliquer le bout de code que je vous ai donné 12 fois... En ne changeant que l'expression régulière à chaque fois ! C'est frustrant.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 ls $rep1 | awk '$0 ~ /(c|cpp)$/ {print $0}' | while read fic do [[ ! -f $rep2/$fic ]] && echo $fic >> $fichier_resultat done
Si quelqu'un sait comment gérer les expressions régulières variables dans un awk, je lui suis d'avance reconnaissant de me faire profiter de ses connaissances.
Gari.
Partager