используя регулярные выражения для извлечения информации из файла - PullRequest
0 голосов
/ 03 апреля 2012
grep -H "httpd" /Users/sars/logs/testlogs/2012-04-02*/*/top

Я ищу файл и ищу httpd, который потребляет более 0,00% процессорного времени. Таким образом, результат выглядит следующим образом

/Users/sars/logs/2012-04-03-021/server1/top:10182 root            15  96    0 50352K 12880K ucond   2  48:01  0.00% httpd 

Я хочу видеть выходные данные только для результатов, отличных от 0,00% в этой строке

Ответы [ 2 ]

1 голос
/ 03 апреля 2012

Вы можете grep снова:

grep -H "httpd" /Users/sars/logs/testlogs/2012-04-02*/*/top | grep -vw 0.00%
0 голосов
/ 04 апреля 2012

Я предлагаю вам взглянуть на awk вместо grep.Вы получаете гораздо больше гибкости и вам не нужно иметь дело с таким количеством труб.

awk '
  BEGIN {
    minimum=10; # only show lines greater than this percent
  }

  # skip lines that are not httpd
  $12 != "httpd" { next; }

  # remove the "%" from the cpu usage column
  { sub(/%/, "", $11) }

  # print lines whose % is higher than minimum
  $11 > minimum { print; }
' /Users/sars/logs/testlogs/2012-04-02*/*/top

Могут потребоваться некоторые корректировки;Я не видел ваших данных, поэтому я на самом деле не проверял это.

Если бы я делал это для себя, я бы либо сохранил скрипт awk как отдельный инструмент, который вызывался изнутри.сценарий оболочки, или я бы встроил его в сценарий оболочки в функцию.Не могу порекомендовать, не зная, как вы планируете использовать это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...