|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Nouveau Membre du Club
![]() Inscription : juillet 2009 Messages : 29 ![]() |
Salut,
Je me confronte à une demande spécifique à quoi je ne trouve pas une piste; en gros j'ai un: ---rep1 -fichier1 -fichier2 -..... -fichier n Sous ce répertoire je doit comparer le contenu des fichiers (fichier1....fichier n) les commande diff, cmp..ne m'aident pas trop car ils ne prennent pas plus que deux fichiers. Quelqu'un a t-il une piste SVP ? Merci, |
|
|
01
|
|
|
#2 |
|
Expert Confirmé Sénior
![]() francois Ingénieur systèmes et réseaux Inscription : juillet 2006 Messages : 3 534 ![]() |
quand tu as plusieurs fichiers à comparer, il n'y a qu'une façon de faire, il faut définir un référent et comparer tout le reste unité/unité au référent.
ça s'applique aussi pour les fichiers .... tu vas donc devoir faire une boucle ou mieux un script qui mettra en prime les résultats en forme. |
|
|
00
|
|
|
#3 |
|
Nouveau Membre du Club
![]() Inscription : juillet 2009 Messages : 29 ![]() |
Salut,
Désolé pour le retard. Je crois que je ne me suis pas bien expliqué. Mon problème est que ce répertoire contient une liste de fichiers d'un projet; donc pas forcément qu'il y a un référent pour procéder à la comparaison. Merci et désolé pour le manque de clarté. |
|
|
10
|
|
|
#4 | ||
|
Membre Expert
![]() |
Ca n'est toujours pas clair.
j'ai ceci: Code :
|
||
|
|
10
|
|
|
#5 |
|
Expert Confirmé Sénior
![]() francois Ingénieur systèmes et réseaux Inscription : juillet 2006 Messages : 3 534 ![]() |
il veut comparer les 4 ou n fichiers ce qui implique d'en choisir un référent et de boucler pour comparer chaque autre fichier à ce référent.
Code :
for i in fichier[2-5] ; do diff fichier1 $i ; done |
|
|
00
|
|
|
#6 | |||||
|
Expert Confirmé Sénior
![]() Inscription : février 2008 Messages : 2 070 ![]() |
Citation:
Code bash4 :
Code résultat :
|
|||||
|
|
20
|
|
|
#7 |
|
Membre Expert
![]() |
Ah ok, bon soit...
Toujours intéressant de voir tes scripts N_BaH... |
|
|
10
|
|
|
#8 | ||
|
Nouveau Membre du Club
![]() Inscription : juillet 2009 Messages : 29 ![]() |
Salut,
@frp31: merci bcp de ta réponse. J'ai essayé une approche à cette boucle, mais je dois toujours peaufiner la sortie de la commande; c'est vrai que pour 5 fichiers par exemple ça reste lisible, mais pour une liste de 20 ou plus; cela devient vite ... @N_BaH: merci bcp de ta réponse. J'ai des questions stp: 1- sur Ubuntu (dash), ça marche pas Code :
IFS=';' read -a files <<< "${aArr[$item]}" Cela dit je crois que la double redirection ne marche pas sur "dash" 2- j'ai dû ajouter un signe "=" Sinon il me retourne: Code :
line 7: 3c06050502b02e69622edb4c30eed783: value too great for base (error token is "3c06050502b02e69622edb4c30eed783") Code :
Merci encore; |
||
|
|
10
|
|
|
#9 |
|
Expert Confirmé Sénior
![]() Inscription : février 2008 Messages : 2 070 ![]() |
J'ai précisé qu'il fallait Bash4, à cause de l'emploi du tableau associatif.
les chaînes en ligne (herestring (<<<)) ne sont pas POSIX, ça ne fonctionnera donc pas avec dash; pas davantage que les tableaux, a fortiori les tableaux associatifs. |
|
|
10
|
|
|
#10 |
|
Nouveau Membre du Club
![]() Inscription : juillet 2009 Messages : 29 ![]() |
Dslé, j'aurais du bien lire ton message avant de me jeter comme ça.
Un upgrade du bash, et tout roule. |
|
|
10
|
|
|
#11 |
|
Expert Confirmé Sénior
![]() francois Ingénieur systèmes et réseaux Inscription : juillet 2006 Messages : 3 534 ![]() |
Merci pour la méthode N_BaH
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com