Распечатайте количество раз, 2 слова появляются в системном журнале. Но также скажи мне, сколько раз за каждый час

Поэтому я пытаюсь создать bash-скрипт, который ищет два слова в моем файле системного журнала. Затем я хочу, чтобы сценарий распечатал, сколько раз эти два слова появились. Также я хочу, чтобы это распечатывало каждый час дня. Например, если слово «собака» появлялось 4 раза в течение первого часа сегодняшнего дня, оно говорит «Час первый», «Собака 4. Наконец, в конце сценария я хочу, чтобы оно распечатывало, сколько раз эти слова появлялись за день».

Код sudo, который у меня есть, это

if 2 > hour
find permit
find block
print both
finish

if 1 < hour < 2
find permit
find block
print both
finish

if 2 < hour < 3
find permit
find block
print both
finish

команда grep -o "\ WORD \" Syslog.txt * | сортировать | uniq -c

1
задан 4 June 2014 в 21:36

1 ответ

Здесь немного менее - псевдо код. Я не протестировал его так, это не может работать вообще, но это - где я мог бы запустить.

function findprint {
    local word1 = $(echo $1 | grep -o "\WORD1\" | wc -w)
    local word2 = $(echo $1 | grep -o "\WORD2\" | wc -w)
    word1total=$[word1total+word1]
    word2total=$[word2total+word2]
    echo "$word1 WORD1"
    echo "$word2 WORD2"
}
word1total = 0;
word2total = 0;
while read line; do
    if [ hour -lt 2 ]; then
        echo "Hour 1"
        findprint "$line"
    fi

    if [ hour -gt 1 && hour -lt 2 ]; then
        echo "Hour 2"
        findprint "$line"
    fi

    if [ hour -gt 2 && hour -lt 3 ]; then
        echo "Hour 3"
        findprint "$line"
    fi
done < /var/log/syslog

echo "TOTAL:"
echo "$word1total WORD1"
echo "$word2total WORD2"
1
ответ дан 4 June 2014 в 21:36

Другие вопросы по тегам:

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