Je veux écrire un script pour vérifier les doublons Par exemple: J'ai un fichier texte contenant des informations dans le format du fichier/etc/passwdVérifiez si une chaîne particulière est dans un fichier bash
alice:x:1008:555:William Williams:/home/bill:/bin/bash
bob:x:1018:588:Bobs Boos:/home/bob:/bin/bash
bob:x:1019:528:Robt Ross:/home/bob:/bin/bash
james:x:1012:518:Tilly James:/home/bob:/bin/bash
I vouloir simplement vérifier s'il y a des utilisateurs en double et s'il y a, afficher la ligne en erreur standard. Ainsi, dans l'exemple ci-dessus puisque bob apparaît deux fois ma sortie serait tout simplement générer quelque chose comme:
Error duplicate user
bob:x:1018:588:Bobs Boos:/home/bob:/bin/bash
bob:x:1019:528:Robt Ross:/home/bob:/bin/bash
En ce moment j'ai une boucle while qui lit chaque ligne et stocke chaque élément d'information dans une variable en utilisant -F awk qui est délimité par ":". Après avoir stocké mon nom d'utilisateur, je ne suis pas sûr de la meilleure approche pour vérifier si elle existe déjà.
Certaines parties de mon code:
while read line; do
echo $line
user=`echo $line | awk -F : '{print $1}'`
match=`grep $user $1`($1 is the txtfile)
if [ $? -ne 0 ]; then
echo "Unique user"
else
echo "Not unique user"
then somehow grep those lines and output it
fi
done
La mise en correspondance ne produit pas les bons résultats
Suggestions?
'grep' renvoie uniquement un code de sortie non nulle quand il y a *aucune concordance. –