Bonjour,
Je voudrais savoir comment afficher la difference entre deux fichier car la commande diff m'affiche toute la ligne.
Imput
Fichier1:
AAA BBB CCC DDD
FFF HHH JJJ KKK
Fichier 2:
AAA BBB DDD
FFF HHH JJJ
Output:
CCC
KKK
Bonjour,
Je voudrais savoir comment afficher la difference entre deux fichier car la commande diff m'affiche toute la ligne.
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!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 awk
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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...
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager