Pad AWK столбцы - PullRequest
       0

Pad AWK столбцы

1 голос
/ 19 марта 2020

Пытается проанализировать вывод BSD top, чтобы показать только PID - COMMAND - MEM для определенного c процесса;

$ top -l 1 | grep -E '%CPU\ |coreaudio'
PID    COMMAND          %CPU TIME     #TH    #WQ #PORTS MEM   PURG
354    com.apple.audio. 0.0  00:00.00 2      1   12     820K  0B
296    com.apple.audio. 0.0  00:00.03 2      1   38     2024K 0B
282    coreaudiod       0.0  03:25.05 94     2   736    21M   0B

Использование для отображения только столбца $1 - $2

$ top -l 1 | grep -E '%CPU\ |coreaudio' | awk {'print $1" -- "$2'}
PID -- COMMAND
354 -- com.apple.audio.
296 -- com.apple.audio.
282 -- coreaudiod

Добавление 3-го столбца путается с «столбцами», так как вторые столбцы не дополняются;

$ top -l 1 | grep -E '%CPU\ |coreaudio' | awk {'print $1" -- "$2" -- "$8'}
PID -- COMMAND -- MEM
354 -- com.apple.audio. -- 820K
296 -- com.apple.audio. -- 2024K
282 -- coreaudiod -- 21M

Как мне «дополнить» «столбец», чтобы сохранить макет "нетронутым? Или я должен использовать другой инструмент, такой как ?

Note;

Использование top -l 1 , так как я нахожусь на Ма c

1 Ответ

1 голос
/ 19 марта 2020

Вы можете дополнить строки некоторым «постоянным» количеством пробелов:

<<<$input awk '{printf "%-20s %-10s %-4s\n", $1, $2, $8}'
#                         ^^    ^^    ^ field width
#                        ^     ^     ^  left justify

Вы можете использовать column:

<<<$input awk '{print $1, $2, $8}' | column -t
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...