PS-Ausgabeformatierung verwenden:
ps -A -o pid
Die Ausgabeformatierung des Befehls ist die beste Option. Die Option o steuert die Ausgabeformatierung. Ich habe unten einige der Argumente aufgelistet, siehe 'man ps' für den Rest (um mehrere zu verwenden, wäre es -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 oder Cut wäre besser, um Spalten zu bekommen:
Im Allgemeinen möchten Sie keinen Regex zum Auswählen der ersten Spalte, Sie möchten ihn an cut oder awk weiterleiten, um die erste Spalte auszuschneiden, wie:
ps ax | awk '{print $1}'
Regex ist eine Option, wenn nicht die beste:
Wenn Sie Regex verwenden würden, könnte es so aussehen:
ps ax | perl -nle 'print $1 if /^ *([0-9]+)/'
$1 gibt nur das aus, was in der Klammer gefunden wurde. ^ verankert das am Anfang der Zeile. Leerzeichen Stern bedeutet, dass optionale Leerzeichen vor der Nummer zulässig sind. [0-9]+ bedeutet eine oder mehrere Ziffern. Aber ich würde Regex für diese spezielle Aufgabe nicht empfehlen, sehen Sie warum? :-)
ps ax | awk '{ print $1; }'
Verwenden Sie das -o wechseln, um eine Ausgabe im benutzerdefinierten Format zu haben
ps -o pid
Der schlechte Weg, sed zu verwenden, wie Sie ausdrücklich gefragt haben, kann sein
ps -ax | sed 's#^\( *[0-9]\+\) .*$#\1#'