4 votes

Combiner deux commandes en une seule

Comment puis-je combiner ces deux commandes ? ps aux | head -n1 ; ps aux | grep vlc en une seule commande ? J'ai essayé d'utiliser tee commande ( ps aux | tee >(head -n1) >(grep vlc) ) mais cela n'a pas fonctionné !

8voto

Sylvain Pineau Points 59212

Vous pouvez dire ps pour n'imprimer que les identifiants de processus de vlc con -C .

De man ps :

   -C cmdlist
          Select by command name.  This selects the processes whose
          executable name is given in cmdlist.

Ejemplo:

$ ps u -C vlc
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
sylvain  12586  0.1  0.3 1076848 60908 ?       Sl   20:10   0:00 /usr/bin/vlc

7voto

heemayl Points 85741

Utilisation bash la substitution de processus et cat :

cat <(ps aux | head -1) <(ps aux | grep '[v]lc')

Le modèle de substitution de processus <() remplace la sortie de la commande qu'il contient par un fichier. cat concaténera simplement les fichiers comme d'habitude.

Exemple :

$ cat <(ps aux | head -1) <(ps aux | grep '[v]lc')
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
chayan   26031  2.3  0.4 1098532 38556 pts/31  Sl   20:45   0:00 vlc

6voto

Wayne_Yux Points 4743

J'utiliserais

ps aux | grep -E '^USER|vlc'

vous pouvez ajouter | grep -v grep pour exclure la ligne grep

6voto

Stewart Points 1385

Dites-le simplement ps pour n'afficher que la sortie de vlc :

$ ps -P $(pgrep vlc)
PID PSR TTY      STAT   TIME COMMAND
6728   2 pts/0    Sl     0:00 vlc

pgrep énumère les PID de tous les processus dont le nom correspond au motif donné. -P vous permet de lister des informations uniquement pour des PID spécifiques. En combinant les deux, vous obtenez l'option ps et uniquement les lignes qui vous intéressent.

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