Comment écrire une commande awk qui lit le fichier/etc/passwd et qui affiche uniquement les noms des utilisateurs ayant le programme/bin/bash comme shell de commande par défaut?Aide de la commande AWK
Répondre
cat /etc/passwd | awk -F ":" '$7=="/bin/bash" { print $1 }'
awk -F: '/\/bin\/bash$/{print $1}' /etc/passwd
Alors/bin/bash est le même que/tmp/attack/bin/bash? –
Bonne prise. Comme l'a fait Bear, la vérification contre l'ensemble du champ est une meilleure approche. – jamessan
Puisque vous avez défini le délimiteur à ":", pourquoi vérifier la ligne entière pour bash? utiliser $ 7 – ghostdog74
Depuis c'est des devoirs, je ne vais pas écrire le programme pour vous (et je l'espère personne d'autre ne soit), mais voici ce que vous devez savoir:
Le séparateur de champ par défaut dans AWK est un espace; le séparateur de champ au
/etc/passwd
est un deux-points. Vous pouvez modifier le séparateur de champ dans AWK via la variableFS
ou-F
sur la ligne de commande.Dans
/etc/passwd/
, le shell est listé dans le 7ème champ.
Eh bien, dans le temps qu'il m'a fallu pour écrire autant, deux personnes ont fait vos devoirs pour vous. Bonne chance!
Oups, n'a pas remarqué l'étiquette de devoirs quand j'ai posté. – jamessan
@OP, vous pouvez utiliser awk
awk 'BEGIN{FS=":"}$7~/bash/{print $1}' /etc/passwd
les contrôles ci-dessus pour bash, mais ne limite pas à/bin/bash. Si vous avez absolument besoin de/bin/bash, changez-le.
OU dire à votre professeur vous voulez juste utiliser le shell
#!/bin/bash
while IFS=":" read -r user b c d e f sh h
do
case "$sh" in
*bash*) echo $user;;
esac
done <"/etc/passwd"
- 1. script shell awk aide
- 2. awk/sed pour la commande de test
- 3. problème commande regex awk
- 4. Linux commande awk
- 5. Problème de commande de substitution Awk
- 6. Vous cherchez un équivalent powerhell de la commande awk spécifique
- 7. comment pré-construire l'instruction awk pour passer à awk sur la ligne de commande?
- 8. awk save commande ouput to variable
- 9. aide à la sélection des lignes en utilisant awk
- 10. Utilisez regex dans la commande awk dans le script bash
- 11. Aide sur les scripts Awk - Problème de logique
- 12. Commande aide sous UNIX
- 13. Aide paramètre de commande de liaison à la source relative
- 14. Application Head Unix sur AWK travers commande Rechercher
- 15. Aide de ligne de commande Ant: iisvdir
- 16. Aide avec .ReadToEnd() avec l'invite de commande
- 17. Aide nécessaire à la commande des résultats de recherche
- 18. Aide en ligne de commande TFS
- 19. Aide avec la syntaxe ETD: la commande `s
- 20. awk + valeur à l'exportation à awk
- 21. awk - impossible de spécifier FS
- 22. Exécuter AWK dans la recherche de Vim
- 23. Problème de syntaxe AWK
- 24. Appel de script Bash pour AWK
- 25. trouver la commande avec -regex et -exec, aide regex nécessaire
- 26. Aide avec la commande LEFT JOIN dans php & mysql
- 27. Aide avec une commande boucle et la lecture d'un fichier
- 28. Aide rapide xsl: la commande d'une table par le prix
- 29. xsl: pour chaque commande select aide
- 30. php, commande unix, imagick me aide
+1, mais l'utilisation inutile de chat! :-) 'awk -F: '$ 7 =="/bin/bash "{print $ 1}'/etc/passwd' –
gbacon a raison, le chat n'est pas nécessaire. –