Кто-нибудь объяснить мне эту команду GrepGrep Команда Объяснение требуется
grep "click" /opt/tomcat/logs/localhost_access_log.2013-03-19.txt \
| awk -F: '{if (($3 >= $hr) && ($4 >= $min)) print $0}' | wc -l
Кто-нибудь объяснить мне эту команду GrepGrep Команда Объяснение требуется
grep "click" /opt/tomcat/logs/localhost_access_log.2013-03-19.txt \
| awk -F: '{if (($3 >= $hr) && ($4 >= $min)) print $0}' | wc -l
Есть три процесса в трубопроводе:
grep
находит все строки, содержащие слово «нажмите» из файла журнала и проходит их до awk
.awk
разрывает линию в полях с использованием разделителя :
. Он печатает строку, если 3-е поле больше заданного hr
, а 4-е поле больше указанного mins
, хотя я не вижу, где вы устанавливаете $hr
и $min
.wc
подсчитывает строки, напечатанные awk
.Большое спасибо. Очень хорошо объяснение. –
Grep
находит все строки, содержащие строку символов click
. Эти строки передаются в awk
, который печатает только строки, в которых третьи поля больше или равны переменной оболочки $hr
, а четвертое поле больше или равно переменной оболочки $min
, где разделитель полей :
(хотя эти оболочки переменная не будет расширяться из-за цитирования). wc -l
затем используется для подсчета количества совпадений. В настоящее время трубопровод не отображает количество ожидаемых строк из-за того, что переменные оболочки не расширяются.
Ваш трубопровод может быть заменен (и фиксировано) с простой awk
сценария:
$ hr=3
$ min=23
$ awk -F: -v h="$hr" -v m="$min" '/click/ && $3 >= h && $4 >= m{c++}END{print c}'
Это то, что мне нужно grep "click" localhost_access_log.2013-03-15.txt | awk '{if ($ 9! = 301) print $ 0}' | wc -l grep "imp" localhost_access_log.2013-03-15.txt | awk '{if ($ 9! = 301) print $ 0}' | wc -l Если число записей составляет более 10 за последние 15 минут, необходимо отправить электронное письмо. –
grep "click" /opt/tomcat/logs/localhost_access_log.2013-03-19.txt
Поиск слова click
в данном файле
awk -F: '{if (($3 >= $hr) && ($4 >= $min)) print $0}'
Split каждый результат от Grep, используя секатор :
. Если 3-й элемент больше $hr
, а 4-й элемент больше $min
, напечатайте 1-й элемент.
wc -l
Подсчитайте все печатные элементы.
Похоже, что команда подсчитывает, сколько строк в файле журнала имеет отметку времени, превышающую указанный час и минуту.
'grep' фильтрует строки в файле' .txt', которые содержат строку 'click'. Это действительно ваш вопрос? –