adsl club

Справочник

Форум

Программы

Фильмы

Ресурсы

Файлообмен

Хостинг

Ростелеком
Unix Shell
Ответить на тему    Форум АДСЛ КлубаЦИФРОВОЙ ФЛЕЙМ :)ПРОГРАММИРОВАНИЕ
Автор Сообщение
ДобрыйФей
Мечтатель
Предупреждений : 5
СообщениеДобавлено: Пт 30-04-10 : 19-00    Заголовок сообщения: Unix Shell Ответить с цитатой

В общем, есть задание написать пару скриптов на баше. Желательно без использования переменных.
Так вот, есть лог-файл со строчками вида:
Код:
1233746742.628      0 192.168.85.153 TCP_DENIED/403 1304 CONNECT 194.67.23.154:1863 - NONE/- text/html
Нужно посмотреть объем скачанной инфы по юзеру (5-ый и 8-ой столбцы соответственно).
Я написал такую вот штуку:
Код:
#Часть 4 - кол-во скачанной инфы
all=0;
for i in `head -n $N /home/LOGS/CHEL_bio3k/squid/access.log | \
tr -s " " | \
cut -f 5,8 -d " " | \
grep $1 | \
cut -f 1 -d " "`; do((all+=i));done; echo $all
, но тут присутствует переменная all. Можно как-то обойтись без нее?
 Наверх
Посмотреть профиль / Отправить личное сообщение Отправить личное сообщение  
1ddr
Гуру
Предупреждений : 1
СообщениеДобавлено: Пт 30-04-10 : 19-46    Заголовок сообщения: Ответить с цитатой

Слушай я чото ваще не знаю как что-либо посчитать не используя переменнуюSmile Ну только если выводить палочки на экран и заставлять их считать юзераSmile Ну можт я не секу)))))
 Наверх
Посмотреть профиль / Отправить личное сообщение Отправить личное сообщение  
1ddr
Гуру
Предупреждений : 1
СообщениеДобавлено: Пт 30-04-10 : 19-46    Заголовок сообщения: Ответить с цитатой

Ну конечно если это итеративный процесс. Так то 2 переменные сложить и выводить можно и без переменной, но вот чтобы хранить сумму надо переменную.
 Наверх
Посмотреть профиль / Отправить личное сообщение Отправить личное сообщение  
sham
ум, честь, совесть эпохи!
Предупреждений : 4
СообщениеДобавлено: Пт 30-04-10 : 19-50    Заголовок сообщения: del Ответить с цитатой

delПоследний раз редактировалось: sham (Ср 23-03-22 : 02-41), всего редактировалось 1 раз
 Наверх
Посмотреть профиль / Отправить личное сообщение Отправить личное сообщение  
ДобрыйФей
Мечтатель
Предупреждений : 5
СообщениеДобавлено: Пт 30-04-10 : 19-58    Заголовок сообщения: Ответить с цитатой

1ddr
Ну, например, когда считается в другом задании количество удачных\неудачных подключений, то там теоретически можно обойтись без переменной с помощью замены кодов по маске, потом sort и uniq -c.
sham писал(а):
Положить в стек, потом считать оттуда же. В форте так точно можно, в бэше не знаю, но должно быть.

Mad
 Наверх
Посмотреть профиль / Отправить личное сообщение Отправить личное сообщение  
ДобрыйФей
Мечтатель
Предупреждений : 5
СообщениеДобавлено: Пт 30-04-10 : 20-25    Заголовок сообщения: Ответить с цитатой

Поправка.
Проблема не в all, а в
Код:
`head -n $N /home/LOGS/CHEL_bio3k/squid/access.log | \
tr -s " " | \
cut -f 5,8 -d " " | \
grep $1 | \
cut -f 1 -d " "`

Тут переполнение может быть, надо по-другому.
UPD: посоветовали с стдаутом напрямую работать.
 Наверх
Посмотреть профиль / Отправить личное сообщение Отправить личное сообщение  
ДобрыйФей
Мечтатель
Предупреждений : 5
СообщениеДобавлено: Чт 6-05-10 : 04-06    Заголовок сообщения: Ответить с цитатой

Кстате, неактуально уже.
 Наверх
Посмотреть профиль / Отправить личное сообщение Отправить личное сообщение  
Показать сообщения:   
Ответить на тему    Форум АДСЛ КлубаЦИФРОВОЙ ФЛЕЙМ :)ПРОГРАММИРОВАНИЕ Часовой пояс: GMT + 7
Страница 1 из 1

 

 
Аватары: Вкл|Выкл   ЮзерИнфо: Вкл|Выкл   Подписи: Вкл|Выкл
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете вкладывать файлы
Вы можете скачивать файлы