4 votes

trier une liste en conservant une entrée de chaque ligne dupliquée

J'ai une liste de films que je télécharge quotidiennement et qui se présente sous la forme suivante

act-of-valor-2012
act-of-valor-2012
the-possession-2012
the-possession-2012
american-crude-2008
american-crude-2008
when-strangers-appear-2001
like-father-like-son-2005
like-father-like-son-2005
get-him-to-the-greek-2010
get-him-to-the-greek-2010
wall-street-money-never-sleeps-2010
wall-street-money-never-sleeps-2010
christmas-evil-1980
days-of-glory-1944

J'ai besoin de garder le même ordre mais de supprimer les lignes dupliquées pour que ça devienne

act-of-valor-2012
the-possession-2012
american-crude-2008
when-strangers-appear-2001
like-father-like-son-2005
get-him-to-the-greek-2010
wall-street-money-never-sleeps-2010
christmas-evil-1980
days-of-glory-1944

trier change l'ordre. Quelqu'un a-t-il une idée de la manière dont je peux réaliser cela ?

Merci

6voto

Jos Points 23588

Vous voulez le uniq commandement.

De man uniq :

 Filter adjacent matching lines from INPUT (or standard input), writing to OUTPUT (or standard output).

       With no options, matching lines are merged to the first occurrence.

Utilisez-le comme suit :

uniq movies.txt

Sortir comme souhaité.

4voto

Sergiy Kolodyazhnyy Points 97292

Version AWK :

awk '{array[i++]=$0}END{for(j=0;j<=i;j++) if(array[j] != array[j-1]){print array[j]}  }' movies.txt 

Fondamentalement, ce qu'il fait est de lire les données dans le tableau et d'imprimer seulement les lignes qui n'ont pas la ligne précédente en tant que doublon.

La manière la plus courte serait de montrer ici :

$ awk '!a[$0]++' movies.txt                                                     
act-of-valor-2012
the-possession-2012
american-crude-2008
when-strangers-appear-2001
like-father-like-son-2005
get-him-to-the-greek-2010
wall-street-money-never-sleeps-2010
christmas-evil-1980
days-of-glory-1944

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X