1 votes

Pour chaque sortie de grep, exécuter plusieurs commandes

Première :

sudo netstat -nptc | grep -oP "\K[0-9]*(?=/perl)"

La méthode ci-dessus me donne le pid au fur et à mesure qu'ils sont démarrés, ce qui fait qu'ils sont constamment en cours d'exécution.

Deuxième :

Pour chaque sortie de la première commande ci-dessus, je veux exécuter la commande suivante :

ps aux | grep <output of first>

Comment procéder ?

1voto

Stephen Rauch Points 2841

Pour envoyer la sortie d'une commande dans la ligne de commande d'une autre commande, utilisez xargs .

La complication ici est que vous devez démarrer un pipeline, et pour cela utiliser un Shell. Cela peut être fait avec quelque chose comme :

sudo netstat -nptc | grep -oP "\K[0-9]*(?=/perl)" | xargs -l sh -c 'ps aux | grep "$0"'

( Référence )

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X