Probleme avec un ps et un cut

Probleme avec un ps et un cut - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 25-05-2004 à 19:24:45    

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:24:45   

Reply

Marsh Posté le 25-05-2004 à 19:58:53    

je sais faire avec awk :
 
$ps aux|awk '/machin/{print $2}'

Reply

Marsh Posté le 25-05-2004 à 20:02:29    

pidof le_soft c'est pas mieux ?


---------------
Celui qui pose une question est idiot 5 minutes. Celui qui n'en pose pas le reste toute sa vie. |  Membre du grand complot pharmaceutico-médico-scientifico-judéo-maçonnique.
Reply

Marsh Posté le 26-05-2004 à 03:14:12    

brOloUilLe a écrit :

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


 
Pour modifier le delimiteur avec cut c'est l'option "-d" (man cut), attention pour l'espace il ne faut pas oublie "\" devant ex : cut -d \     -f 1
 
sinon pour traiter ligne par ligne tu peux faire :
 
for num in `ps | cut -d \  -f 1,2`;
do traitement_sur $num;
done
 

Reply

Sujets relatifs:

Leave a Replay

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