우리는 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 } '