Je voudrais pouvoir afficher les utilisateurs qui apparaissent plus de trois fois dans un fichier texte.
Exemple de fichier :
15/05/2006 user1
05/06/2006 user2
18/06/2006 user2
18/06/2006 user2
18/06/2006 user1
19/06/2006 user3
19/06/2006 user1
19/06/2006 user3
J'essaye à coup de grep et de wc -l mais je ne m'en sort pas :(
J'aurais besoin d'un coup de pouce si c'était possible. merci
# Un script vite fait et pas forcément le plus propre
Posté par Mickael Villers . Évalué à 4.
1) je liste les user
2) pour tous les users, j'affiche le nom et OK si + de 3
On peut voir à mettre des variables un peu partout :)
#!/bin/sh
USER=`cut -d" " -f2 ref.txt | sort | uniq`
for i in $USER
do
echo $i
[[ `grep $i ref.txt | wc -l` > 2 ]] && echo "OK"
done
[^] # Re: Un script vite fait et pas forcément le plus propre
Posté par arn100 . Évalué à 2.
Je ne connaissais pas la commande uniq... merci :)
[^] # smaller, faster, better
Posté par Krunch (site web personnel) . Évalué à 5.
pertinent adj. Approprié : qui se rapporte exactement à ce dont il est question.
[^] # Re: smaller, faster, better
Posté par totof2000 . Évalué à 4.
sinon en awk:
awk '
{
USER[$2]++
}
END {
for (User in USER) {
if (USER[User] >= 3) {
print User
}
}
}' toto.txt
[^] # Re: smaller, faster, better
Posté par Tony Flow . Évalué à 2.
sort +1 fichier | uniq -c -f 1 | awk -F " " '{if ($1>=3) print $3}'
[^] # Re: smaller, faster, better
Posté par Krunch (site web personnel) . Évalué à 3.
pertinent adj. Approprié : qui se rapporte exactement à ce dont il est question.
[^] # Re: smaller, faster, better
Posté par totof2000 . Évalué à 3.
Hi Han!
:)
[^] # Re: smaller, faster, better
Posté par Mickael Villers . Évalué à 2.
Bon, +1 me dit dépréciated :), maintenant c'est -k
Sinon, le grep marche mais que si on a au moins 2 entrées, parcec que si il n'y en a qu'une ! alors elle apparait!
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.