LINUX.ORG.RU

История изменений

Исправление crutch_master, (текущая версия) :

Тебе надо:
1.Выбрать все строки, где есть 10.10.10.10, посчитать их число. Выбрать можно с помощью grep, посчитать - wc -l:

cat log | grep 10.10.10.10 | wc -l
2. Тоже самое, только надо выделить число байт регуляркой типа received ([0-9]*) bytes. Я бы сделал на sed что-то типа
#test
echo "received 1152 bytes" | sed -rn "s/received ([0-9]*) bytes/\1/p"
или как-то так, гугли regexp groups для sed/perl/чего тебе надо. Чтобы просуммировать подойдёт bc. В итоге для задачи 2 получается следующее:
cat log | grep 10.10.10.10 | sed -rn "s/received ([0-9]*) bytes/\1+/p > sum.list
cat 0 >> sum.list
cat sum.list | bc
Первая команда собирает всё в sum.list вида 5+6+3+, вторая дописывает ноль в конец, т.к. bc не съест такую «формулу» из-за пропуска числа в конце, третья скармливает годный файл bc, который выпишет тебе результат. Работоспособность не проверял. Разбивай задачи на подзадачи, решай их по одной. Как видишь способов решения есть множество, сейчас еще напишут, что я - шмок и можно было сделать лучше.

Исходная версия crutch_master, :

Тебе надо:
1.Выбрать все строки, где есть 10.10.10.10, посчитать их число. Выбрать можно с помощью grep, посчитать - wc -l:

cat log | grep 10.10.10.10 | wc -l
2. Тоже самое, только надо выделить число байт регуляркой типа received ([0-9]*) bytes. Я бы сделал на sed что-то типа
#test
echo "received 1152 bytes" | sed -rn "s/received ([0-9]*) bytes/\1/p"
или как-то так, гугли regexp groups для sed/perl/чего тебе надо. Чтобы просуммировать подойдёт bc. В итоге для задачи 2 получается следующее:
cat log | grep 10.10.10.10 | sed -rn "s/received ([0-9]*) bytes/\1+/p > sum.list
cat 0 >> sum.list
cat sum.list | bc
Первая команда собирает всё в sum.list вида 5+6+3+, вторая дописывает ноль в конец, т.к. bc не съест такую «формулу» из-за пропуска числа в конце, третья скармливает годный файл bc, который выпишет тебе результат. Работоспособность не проверял. Разбивай задачи на подзадачи, решай их по одной. Как видишь способов решения есть множество.