Bonjour,
Actuellement je stocke le résultat de mon diff dans un rapport et j'ai un peu formaté le retour pour que celui soit plus joli et plus simple à comprendre.
Le fichier se présente comme suit :
Ce qu'il me reste à faire est d'identifier les lignes de type "147,148c147,148" qui représente les lignes où la différence a été détectée ainsi que le type de différence (a, d ou c).
#############################################
#############################################
Le test CMD_newagate_ACQ_NetN__0008537025.resultat presente les differences suivantes :
147,148c147,148
Resultat : <CodeStatutCpltEPC>SFC:10825</CodeStatutCpltEPC>
Resultat : <LibelleStatutCpltEPC>ERREUR DU MODULE SERVEUR (825) : -ERREUR-</LibelleStatutCpltEPC>
---------------
Modele : <CodeStatutCpltEPC>SFC:10234</CodeStatutCpltEPC>
Modele : <LibelleStatutCpltEPC>ERREUR DU MODULE SERVEUR (234) : -ERREUR-</LibelleStatutCpltEPC>
#############################################
#############################################
Le test CMD_newagate_ACQ_NetN__0008537025_BCS.resultat presente les differences suivantes :
147,148c147,148
Resultat : <CodeStatutCpltEPC>SFC:10841</CodeStatutCpltEPC>
Resultat : <LibelleStatutCpltEPC>ERREUR DU MODULE SERVEUR (841) : -ERREUR-</LibelleStatutCpltEPC>
---------------
Modele : <CodeStatutCpltEPC>SFC:10250</CodeStatutCpltEPC>
Modele : <LibelleStatutCpltEPC>ERREUR DU MODULE SERVEUR (250) : -ERREUR-</LibelleStatutCpltEPC>
Une fois la ligne identifiée, je voudrais dire quelle type de différence il y a et sur quelles lignes.
Je précise que je suis dans un awk, voici mon code :
J'ai choisi pour identifier la ligne d'utiliser /^[0-9].+/. Maintenant je ne sais pas comment me débrouiller pour récupérer chaque informations correctement. Sachant qu'il peut être renseigné une seule ligne ou deux (une plage), et que je dois identifier la lettre au centre également.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42 diff -rs --ignore-matching-lines='DateStatutOpEPC\|HorodatageMessage' ${Rep_resultats}/ ${Rep_modeles}/ | (awk ' /^Files.+ are identical$/ { gsub(/^.+\//,"",$(NF-2)); gsub(/.xml/,"",$(NF-2)); print $(NF-2) " : Valid" > Rapport_de_test; next; } /^diff -rs.+ / { gsub(/^.+\//,"",$4); gsub(/.xml/,"",$4); print " " > Resultat_diff; print " " > Resultat_diff; print "#############################################" > Resultat_diff; print "#############################################" > Resultat_diff; print "Le test " $4 " presente les differences suivantes :" > Resultat_diff; print " " > Resultat_diff; print $4 " : Failed" > Rapport_de_test; if (mavar == 0) { mavar=1; print "KO"; } next; } /^[<]+.+/ { gsub(/^[<]/,"",$0); print "Resultat : " $0 > Resultat_diff; next; } /^[>]+.+/ { gsub(/^[>]/,"",$0); print "Modele : " $0 > Resultat_diff; next; } /^---/ { print "---------------" > Resultat_diff; next; } /^[0-9].+/ { print $0 > Resultat_diff; }
Un petit coup de pouce ?
Partager