Le 12/06/2018 à 16:34, nt.guilde@??? a écrit :
>> J'ai 2 gros fichiers.
>> (...)
>> J'aimerais trouver les nouvelles lignes, les lignes modifiées et les lignes
>> supprimées.
>
> comm [OPTION]... FILE1 FILE2
oui oui, c'est ce que j'ai mis dans mon script.
Pas bien réussi avec diff pour avoir une sortie claire.
Il y a les options 1 2 et 3
comm -1 -2 -3 -12 -13 -23 ...
J'ai dû mal à savoir ce que font ces options exactement... ;)
----
# man comm
...
DESCRIPTION
Comparer les fichiers triés FICHIER1 et FICHIER2 ligne par ligne.
Sans option, la sortie se fait sur 3 colonnes. La première
colonne contient les lignes présentes uniquement dans le FICHIER1, la
seconde contient les lignes présentes uniquement
dans le FICHIER2, et la troisième contient les lignes communes
aux deux fichiers.
-1 supprimer la première colonne (les lignes présentes
uniquement dans le FICHIER1)
-2 supprimer la deuxième colonne (les lignes présentes
uniquement dans le FICHIER2)
-3 supprimer la troisième colonne (les lignes qui
apparaissent dans les 2 fichiers)
--check-order
vérifier que l'entrée est triée, même si toutes les
lignes en entrée peuvent être appairées
--nocheck-order
ne pas vérifier que l'entrée est bien triée
--output-delimiter=CHAÎNE
séparer les colonnes avec CHAÎNE
--help Afficher l'aide-mémoire et quitter
--version
Afficher le nom et la version du logiciel et quitter
Notez que les comparaisons respectent les règles indiquées par «
LC_COLLATE ».
EXEMPLES
comm -12 fichier1 fichier2
N'afficher que les lignes présentes à la fois dans
fichier1 et fichier2.
comm -3 fichier1 fichier2
Afficher les ligne se trouvant dans fichier1 et pas dans
fichier2, et inversement.
...
----
Pas très clair.
https://www.gnu.org/software/coreutils/manual/html_node/comm-invocation.html#comm-invocation
=>
This option is a GNU extension. Portable scripts should use wc to get
the totals, e.g. for the above example files:
$ comm -23 file1 file2 | wc -l # number of lines only in file1
1
$ comm -13 file1 file2 | wc -l # number of lines only in file2
2
$ comm -12 file1 file2 | wc -l # number of lines common to both files
4
voilà pour les options pour comm
-1 les lignes qui sont communes aux 2 fichiers et les lignes qui se
trouvent seulement dans le fichier 2
-2 les lignes qui sont communes aux 2 fichiers et les lignes qui se
trouvent seulement dans le fichier 1
-3 les lignes qui se trouvent seulement dans le fichier 1 et les lignes
qui se trouvent seulement dans le fichier 2
-123 il n'y a plus rien, aucune ligne
Si je n'ai rien compris, merci de corriger
Anne