Utilisez le formatage de sortie ps :
ps -A -o pid
Le formatage de la sortie de la commande est la meilleure option. L'option o permet de contrôler le formatage de la sortie. J'ai listé certains des arguments ci-dessous, voir 'man ps' pour le reste (pour utiliser plusieurs arguments, ce sera -o pid,cmd,flags
).
KEY LONG DESCRIPTION
c cmd simple name of executable
C pcpu cpu utilization
f flags flags as in long format F field
g pgrp process group ID
G tpgid controlling tty process group ID
j cutime cumulative user time
J cstime cumulative system time
k utime user time
o session session ID
p pid process ID
Awk ou Cut serait mieux pour obtenir des colonnes :
En général, vous ne voulez pas d'une regex pour sélectionner la première colonne, mais plutôt d'un pipe vers cut ou awk pour couper la première colonne, par exemple :
ps ax | awk '{print $1}'
Regex est une option, si ce n'est la meilleure :
Si vous utilisiez une expression rationnelle, ça pourrait être quelque chose comme :
ps ax | perl -nle 'print $1 if /^ *([0-9]+)/'
$1 imprime uniquement ce qui a été trouvé dans la parenthèse. ^ ancre le au début de la ligne. L'astérisque d'espacement permet d'ajouter des caractères d'espacement facultatifs avant le nombre. [0-9]+ signifie un ou plusieurs chiffres. Mais je ne recommanderais pas les regex pour cette tâche particulière, vous voyez pourquoi ? :-)