137 votes

Linux commande ou d'un script de comptage de lignes dupliquées dans un fichier texte?

Si j'ai un fichier texte avec les éléments suivants conent

red apple
green apple
green apple
orange
orange
orange

Est-il un Linux commande ou le script que je peux utiliser pour obtenir le résultat suivant?

1 red apple
2 green apple
3 orange

247voto

borrible Points 7069

Envoyer par sort (pour mettre des éléments adjacents ensemble) alors uniq -c à se rendre compte, c'est à dire:

sort filename | uniq -c

et pour obtenir cette liste dans l'ordre de tri (par fréquence), vous pouvez

sort filename | uniq -c | sort -nr

58voto

user3534815 Points 71

Presque le même que borribles", mais si vous ajoutez l' d param d' uniq il ne montre que des doublons.

sort filename | uniq -cd | sort -nr

7voto

mhyfritz Points 4123

uniq -c file

et dans le cas où le fichier n'est pas triée déjà:

sort file | uniq -c

2voto

Rahul Points 17363

Essayez ceci

cat myfile.txt| sort| uniq

2voto

user unknown Points 15555

Pouvez-vous vivre avec alphabétique, la liste ordonnée:

echo "red apple
> green apple
> green apple
> orange
> orange
> orange
> " | sort -u 

?

green apple
orange
red apple

ou

sort -u FILE

-u désigne unique, et l'unicité est uniquement accessible via le tri.

Une solution qui préserve l'ordre:

echo "red apple
green apple
green apple
orange
orange
orange
" | { old=""; while read line ; do   if [[ $line != $old ]]; then  echo $line;   old=$line; fi ; done }
red apple
green apple
orange

et, avec un fichier

cat file | { 
old=""
while read line
do
  if [[ $line != $old ]]
  then
    echo $line
    old=$line
  fi
done }

Les deux derniers seulement supprimer les doublons, qui suivent immédiatement - ce qui correspond à votre exemple.

echo "red apple
green apple
lila banana
green apple
" ...

Imprime deux pommes, séparées par une banane.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X