Я пытаюсь написать сценарий, который будет печатать результат использования ЦП и использования памяти в файл csv. Но я хотел бы только напечатать значения, которые лежат в определенных столбцах с именем «CPU», «USERNAME» и «MEMORY».Как напечатать значение столбца с помощью команды awk?
Не могли бы вы рассказать мне, как я могу достичь того же, используя awk-скрипт? Используя awk, я обнаружил, что awk '{print $ 2, $ 5}' печатает значения 2-го и 5-го столбцов. Но я хотел бы напечатать значения, указав вместо имени столбца имя столбца.
Возможно ли это?
Образец сценария я написал:
#!/bin/sh
#This is a comment
#This is my first shell script
echo "System Status Report"
date
echo "CPU Utilisation Report"
prstat -a > CPU.xls
Выход образца:
PID USERNAME SIZE RSS STATE PRI NICE TIME CPU PROCESS/NLWP
26652 root 22M 9648K sleep 1 0 94:34.26 0.2% gpp/1
26854 root 708M 697M sleep 3 0 36:23.19 0.1% logscan/1
25167 oracle 1254M 1225M sleep 1 0 14:07.01 0.0% oracle/10
NPROC USERNAME SIZE RSS MEMORY TIME CPU
41 root 1000M 834M 1.1% 143:47.47 0.4%
60 oracle 72G 70G 99% 65:07.13 0.1%
Я хотел бы получить следующий вывод в файл:
USERNAME CPU
root 0.2%
root 0.1%
oracle 0.0%
USERNAME MEMORY
root 1.1%
oracle 99%
Можете ли вы привести пример ввода для своего скрипта? – hek2mgl
@ hek2mgl: Я предоставил образец сценария – San
Попробуйте решение, но ваш файл cpu.xls должен быть прав. –