-
Question BASH
Bonjour à tous,
Voila je suis un débutant inscrit dans un cours Unix. j'ai pris du retard, et j'ai un exercice à faire. En voici l'énoncé :
Le premier exercice consiste à lister sur la sortie standard les noms (et uniquement les noms) des utilisateurs qui n'ont pas de mot de passe. Nous ferons l'hypothèse que nous sommes sur un système représentant un mot de passe vide par le caractère "*" dans la deuxieme colonne de /etc/passwd. Attention, il est possible que d'autres colonnes contiennent l'étoile; les lignes correspondantes ne devront pas etre prises en compte.
Afin de pouvoir tester votre commande, veuillez à copier /etc/passwd dans votre répertoire. Editez cette copie à l'aide de "vi", pour créer des entrées sans mot de passe.
J'ai donc créé un fichier passwd dans mon dossier personnel, dans lequel j'ai créé les lignes suivantes :
web3: x:2206:2208::/home/web3:/bin/bash
web4: *:2207:2209::/home/web4:/bin/bash
web5: x:2208:2210::/home/web5:/bin/bash
web6: x:2209:2211::/home/web6:/bin/bash
web7: *:2210:2212::/home/web7:/bin/bash
web8: x:2211:2213::/home/web8:/bin/bash
web9: x:2212:2214::/home/w*eb9:/bin/bash
J'ai écrit la commande suivante :
grep -n '*' passwd | cut -d: -f2
qui me retourne :
web4
web7
mais malheureusement aussi
web9
ce qui ne m'arrange pas du tout !!!
Quelqu'un pourrait-il m'aider ?
Merci d'avance
Julien
-
La solution c'est d'utiliser une expression réguliere avec grep
-
Bonjour et bienvenue.
Tu devrais faire un petit tour du coté des regles du forum d'une part. Et d'autre part, merci de ne pas poster tes devoirs. Chacun a les siens et nous ne sommes pas là pour faire les tiens. Je t'engage plutot à faire ton code du mieux que tu le peux et si ça ne marche pas, qud tu as tout tenté, alors là pose la question sur le forum en étant le plus clair possible.
Merci d'avance :)