我们ps ax
得到以下输出
ps ax
PID TTY STAT TIME COMMAND
1 ? Rs 611:56 /usr/lib/systemd/systemd --switched-root --system --deserialize 21
2 ? S 4:46 [kthreadd]
3 ? R 3499:33 [ksoftirqd/0]
5 ? S< 0:00 [kworker/0:0H]
7 ? S 16:24 [migration/0]
8 ? S 0:00 [rcu_bh]
9 ? S 0:00 [rcuob/0]
10 ? S 0:00 [rcuob/1]
11 ? S 0:00 [rcuob/2]
12 ? S 0:00 [rcuob/3]
13 ? S 0:00 [rcuob/4]
14 ? S 0:00 [rcuob/5]
15 ? S 0:00 [rcuob/6]
16 ? S 0:00 [rcuob/7]
17 ? S 0:00 [rcuob/8]
18 ? S 0:00 [rcuob/9]
19 ? S 0:00 [rcuob/10]
例如,我们想要捕获第三个字段上的 R
ps ax | awk '$3 ~ /R/ { print }'
139 ? R 1935:31 [rcuos/1]
现在我们想要两者都捕获第三个字段上的 R 和 D
在这种情况下,应该使用什么语法来捕获第三个字段上的以太 R 或 D ?
答案1
任何一个
ps -ax | awk '$3 ~ /R|D/ '
或者
ps -ax | awk '$3 == "R" || $3 == "D" '
请注意,隐式操作是print
您可以使用o
选项来ps
更改或选择您需要的字段
ps -a -o stat,pid,args | awk '$1 ~ /[DR]/ { $1="" ; print } '