Bonjour,
Je voudrais savoir comment afficher la difference entre deux fichier car la commande diff m'affiche toute la ligne.
Citation:
Imput
Fichier1:
AAA BBB CCC DDD
FFF HHH JJJ KKK
Fichier 2:
AAA BBB DDD
FFF HHH JJJ
Output:
CCC
KKK
Version imprimable
Bonjour,
Je voudrais savoir comment afficher la difference entre deux fichier car la commande diff m'affiche toute la ligne.
Citation:
Imput
Fichier1:
AAA BBB CCC DDD
FFF HHH JJJ KKK
Fichier 2:
AAA BBB DDD
FFF HHH JJJ
Output:
CCC
KKK
Bonjour
Je reformule la question:
Oui!Citation:
Peut-on faire la liste des champs présents dans le fichier1 mais pas dans le fichier2, ligne par ligne?
Rappel: Le manuel bien fait de awkCode:
1
2
3
4
5
6
7
8
9
10
11
12
13 $ cat fic1 AAA BBB CCC DDD FFF HHH JJJ KKK LLL MMM NNN OOO PPP QQQ RRR SSS TTT $ cat fic2 AAA BBB DDD FFF HHH JJJ LLL MMM OOO RRR SSS $ awk '(NR==FNR){for (i=1;i<=NF;i++) x[FNR" "$i]++; next} {for (i=1;i<=NF;i++) if (x[FNR" "$i]==0) printf "%s ",$i;print ""}' fic2 fic1 CCC KKK NNN PPP QQQ TTT
Outre la proposition 'awk', il y a aussi:
- les options de diff, comme 'diff -c' (qui ajoute du contexte aux différences)
- la commande sdiff, (qui permet de comparer les fichiers côte à côte)
- l'excellente commande 'ediff-buffers' incorporée à emacs (qui affiche les différences et ressemblances en couleurs)
- et probablement d'autres outils spécialisés qui font la même chose...
Sans autre précision, difficile de proposer LA bonne solution...