Quelle commande sed/awk puis-je utiliser? Juste sort -u
supprimera toutes les instances
Contribution:
abc
abc
def
abc
abc
def
Production attendue:
abc
def
abc
def
C'est à cela que sert la commande standard uniq
.
uniq your-file
Notez que certaines implémentations uniq
comme GNU uniq
vous donneront le premier d'une séquence de lignes qui trier le même (où strcoll()
renvoie 0) par opposition à sont identiques octet à octet (où memcmp()
ou strcmp()
renvoie 0). une comparaison d'octet à octet quelle que soit l'implémentation de uniq
, vous pouvez forcer les paramètres régionaux à C
avec:
LC_ALL=C uniq your-file
Vim peut très bien y parvenir:
:g/\v^(.*\n)\1/d
Ou si vous préférez utiliser vim comme outil de ligne de commande, vous pouvez le faire comme
vim file -c "g/\v^(.*\n)\1/d" -c "wq"
De cette façon, vous n'avez pas à vous battre pour quitter vim plus tard;)
Explication:
:g/
Sur toutes les lignes qui correspondent à cette expression régulière ...
\v^(.*\n)\1
Toute ligne suivie par elle-même ...
/d
exécutez la commande d elete (supprimez la ligne actuelle). Le -c "wq"
consiste à enregistrer les modifications et à quitter.