Можно ли рассчитать использование CPU от среднего погрузки и верхней колонны CPU%

Я бы просто использовал grep (здесь предполагается GNU grep):

grep -o "'[^']*\.swf'" input.txt > output.txt

Explanation

  • -o печатает только совпадающую часть, а не всю строку.
  • "'[^']*\.swf'" - это шаблон для поиска, заключенный в ", так что в нем могут быть ". Он соответствует начальному ', затем [^']*, то есть неопределенному количеству не' символов, затем .swf (N.B. вы должны экранировать . как \. , так как . имеет особое значение в регулярных выражениях.
  • input.txt - входной файл для чтения.
  • > output.txt перенаправит вывод в этот файл. Если вы удалите эту часть, вы сможете предварительно просмотреть вывод на экране.

Альтернатива

Если GNU grep не установлен, можно попробовать следующее (вдохновленное идеей замены от terdon).

tr -d '\n'  output.txt

Explanation

  • tr -d '\n' прочитает из input.txt, затем удалит все переносы строк (\n).
  • tr "'" '\n' преобразует все ' в переносы строк. Это означает, что каждая строка ранее была окружена '.
  • head -n -1 | tail -n +2. Однако, если исходный текстовый файл начинался с something.swf' или заканчивался 'something.swf, они были бы на своей собственной строке, несмотря на наличие только одного ', и были бы ошибочно обнаружены следующим grep. Если бы, однако, первая или последняя строка правильно содержала обе кавычки, на этом этапе был бы дополнительный перевод строки в начале или в конце. Следовательно, этот сегмент кода отделяет последнюю и первую строку, чтобы соответствовать только этому сценарию.
  • grep '\.swf$' будет искать строки, которые заканчиваются на .swf.

0
16.11.2018, 02:52
1 ответ

Вы можете рассчитать процент ЦП с помощью следующего кода:

#!/bin/bash 
FILE=<file path>  
CPU_USAGE=`sed -n 'H; /^USER/h; ${g;p;}' $FILE | awk '{print $3}' | awk '{sum+=$1} END {print sum ;}'` 
CPU_CORES=`nproc --all`
ACTUAL_CPU_USAGE=`echo "$CPU_USAGE $CPU_CORES" | awk '{print $1/$2"%"}'`
echo "CPU : $ACTUAL_CPU_USAGE"
0
28.01.2020, 04:24

Теги

Похожие вопросы