Problème avec le cut

Problème avec le cut - Shell/Batch - Programmation

Marsh Posté le 25-05-2004 à 19:22:04    

Bonjour
 
je suis newb en script shell.  :sweat:  
j'aimerais récupérer le champ PID de la commande ps avec un cut. mais je n'arrive pas a sélectionner le 2e champ. Le délimiteur 'tab' par défaut ne marche pas ! La commande ps ne doit pas être délimité par des tab mais par des espaces je pense et ca fout le bordel... :fou:  
 

Code :
  1. cmd=`ps aux | grep machin | cut -f1,2`
  2. echo "$num"


 
J'ai d'ailleurs une seconde question. Comment fait on pour traiter ligne par ligne la variable num si le résultat me retourne plusieurs lignes ?
 
merci beaucoup

Reply

Marsh Posté le 25-05-2004 à 19:22:04   

Reply

Marsh Posté le 26-05-2004 à 10:23:19    

man pidof :)
 
sinon, en général quand je suis limité par cut, j'utilise awk, exemple :

ps aux | awk '$11=/.*gkre[l]lm.*/ {print $2}'


 
Tu noteras le "/.*gkre[l]lm.*/" qui la chaine recherchée, avec des crochets car quand tu fais un ps aux | grep machin, tu risques d'avoir dans les résultats la commande que tu viens de lancer. Pour éviter ça, fais plutôt ps aux | grep ma[c]hin ;)

Reply

Marsh Posté le 26-05-2004 à 13:12:54    

merci ca marche beaucoup mieux avec le awk. En revanche je n'arrive pas utiliser les '[]' comme tu me le conseille.
 
mais j'ai un probleme par contre.
 

Code :
  1. ps aux | awk '$11="machin.pl" {print $1,$2,$11}'


 
et il me sort tout plein de processus ki sont meme pas lancé je comprend pas pourquoi :??:  
 

Code :
  1. ...
  2. rpcuser 1083 machin.pl
  3. xfs 1186 machin.pl
  4. root 1225 machin.pl
  5. daemon 1270 machin.pl
  6. root 1271 machin.pl
  7. root 1288 machin.pl
  8. root 1304 machin.pl
  9. root 1310 machin.pl
  10. root 1311 machin.pl
  11. daemon 1330 machin.pl
  12. root 1357 machin.pl
  13. root 1476 machin.pl
  14. root 1500 machin.pl
  15. ...


 
112 précisement ...

Reply

Marsh Posté le 26-05-2004 à 13:16:23    

Si j'utilise les '/'

Code :
  1. ps aux | awk '$11=/.*machin.pl.*/{print $1,$2,$11}'


 
il me sort

Code :
  1. root 2951 1


 
mais je sais pas d'ou vient le '1' ca devrait etre machin.pl normalement

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed