Salut
Remarques préalables:
- Je n'ai pas réussi à taper dans ce message le signe "inférieur à", et donc il faut remplacer dans ce message < par "inférieur à "
- Le pb qui suit concerne la commande qui ne marche pas, et pas le pb en lui même.
Pb:
J'essaye d'afficher un processus dont je me souvient vaguement du nom, mais dans le nom, il y a les 3 lettres slm. J'effectue donc pour le trouver les commandes suivantes:
ps aux | grep *mdm*
ps aux | grep 0<find / -name *mdm*`-print
ps aux | grep 0<(find / -name *mdm*`-print)
ps aux | grep 0<find \( / -name *mdm*`-print \)
ps aux | grep 0<`find / -name *mdm*`-print`
ps aux | grep >`find \( / -name *mdm*`-print \)`
....
Aucune ne marche donc ( Ah bon ? ), comment fait-on pour envoyer le résultat de find dans grep ?
Merci
# Expressions rationnelles
Posté par Jean-Marc (site web personnel) . Évalué à 2.
conserve toutes les lignes qui contiennent le motif "mdm"
ou si tu tiens absolument à utiliser des opérateurs :
ps aux | grep .*mdm.*
Le point représente n'importe quel caractère et avec l'étoile il peut être répété 0 fois ou plus.
# Pour bien comprendre
Posté par Frederic Brugmans . Évalué à 2.
grep est un utilitaire qui recherche des chaines de caractères qui correspondent a une expression réguliere.
Ta premiere devrait permettre de retrouver un programme qui tourne dans la liste du ps aux.
Malheureusement quand tu fais ps aux | grep *mdm*
1 - le *mdm* est évalué par le shell
2 - l'utilisation des * dans le grep tel quel n'a pas de sens puisque tu cherches une chaine de caractères qui contient mdm
ps aux |grep mdm # est plus cohérent
Maintenant pour "rechercher l'executable sur le disque" tu peux faire ceci :
for i in $(ps aux |grep mdm |awk ' $11 ~ /mdm/ { print $11 } ' ) ; do type $i ; done
ou remplacer le type $i par un find, mais c'est beaucoup plus long
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.