Gunakan Pemformatan Keluaran ps:
ps -A -o pid
Pemformatan keluaran dari perintah adalah opsi terbaik. Opsi o mengontrol pemformatan output. Saya mencantumkan beberapa argumen di bawah ini, lihat 'man ps' untuk sisanya (untuk menggunakan lebih dari satu itu adalah -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 atau Potong Akan Lebih Baik untuk mendapatkan Kolom:
Umumnya Anda tidak menginginkan regex untuk memilih kolom pertama, Anda ingin mem-pipe-nya untuk memotong atau awk untuk memotong kolom pertama seperti:
ps ax | awk '{print $1}'
Regex adalah sebuah Opsi, jika bukan yang terbaik:
Jika Anda menggunakan regex, itu bisa seperti:
ps ax | perl -nle 'print $1 if /^ *([0-9]+)/'
$1 hanya mencetak apa yang cocok dengan tanda kurung. ^ jangkar ke awal baris. Tanda bintang spasi berarti mengizinkan karakter spasi opsional sebelum angka. [0-9]+ berarti satu digit atau lebih. Tapi saya tidak akan merekomendasikan regex untuk tugas khusus ini, lihat mengapa? :-)
ps ax | awk '{ print $1; }'
Gunakan -o beralih untuk memiliki keluaran format khusus
ps -o pid
Cara buruk menggunakan sed, seperti yang Anda tanyakan secara eksplisit mungkin adalah
ps -ax | sed 's#^\( *[0-9]\+\) .*$#\1#'