Manip simple du shell

neolistic Messages postés 93 Statut Membre -  
jipicy Messages postés 41342 Statut Modérateur -
Bonjour linuxiens, linuxiennes!

Je voudrais connaitre un truc sur les commandes de shell:
par exemple, comment utiliser les commandes "cut", "lpstat" et "cancel" pour que en une commande je puisse annuler toute les impressions renoyées par la commande lpstat:
Il faut récupérer la premiere colonne du resultat de lpstat
puis appliquer cancel sur chaque lignes

j'avais pensé à "lpstat | cut | cancel" mais ca marche pas
En fait, comment on fait pour que l'argument de lpstat soit l'entrée standard?

De la même facon, comment tuer tous les processus qui contiennent le nom "toto"?

Merci à tous!
A voir également:

2 réponses

lami20j Messages postés 21644 Statut Modérateur, Contributeur sécurité 3 570
 
Voilà un script en Perl pour tuer les processus qui contient "toto"
#! /usr/bin/perl

use warnings;
use strict;

my @toto_pid = grep { /.*/ } qx(ps -ef | grep 'toto');

foreach(@toto_pid){
        my $pid=(split /\s+/,$_)[1];
        system "kill", "-9","$pid"; # tuer les processus qui contient toto
}


En ce qui concerne l'annulation des travaux d'impression d'une destination l'option a du cancel ne te suffit pas? Voir man cancel
0
jipicy Messages postés 41342 Statut Modérateur 4 896
 
Salut,

Si le but recherché est, je cite "comment on fait pour que l'argument de lpstat soit l'entrée standard ?"
Alors essaie ça :
for i in `lpstat | awk '{ print $1 }'`; do cancel $i ; done
Et pour les processus voilà un exemple pour afficher tous les processus de l'user "toto" :
for i in `ps aux | grep ^toto |  awk '{ print $2 }'`; do echo $i; done;
pour tuer tous ses processus, remplace le :
"do echo $i"
par :
do kill -9 $i
0