Sed

ps -l:正則表達式只顯示友好

  • October 15, 2022

我需要幫助提取使用 sed 正則表達式的程序的友好級別。

粗略的輸出範例

ps -l 4411
<stuff*> NI <*stuff>
<stuff*> 19 <*stuff>

問題

我想要NI和19。

我不知道如何同時獲得 NI 和 19,目前我有:

ps -l 4411 | \
sed s'#.*\(NI\).*#\1#'g
NI
<*numbers*>

這當然只會讓我’NI’我不知道如何提取它的底部。

您可以避免使用sed或任何其他命令行工具,例如awk. 您可以使用相同的ps命令來指定列:

ps -o ni 4411
#or 
ps -o nice 4411

這將顯示如下內容:

NI
19

如果您確實想使用命令行工具,那麼您應該使用awk.

awk

如果ps -l 4411返回這個:

F S   UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  TTY        TIME CMD
0 S  1000 22150  4822  0  80   0 -  2773 sigsus pts/4      0:01 /bin/zsh

那麼您應該NI使用以下方法獲得第 8 列:

ps -l 22150 | awk '{print $8}'

引用自:https://unix.stackexchange.com/questions/721061