Автор |
Сообщение |
ДобрыйФей Мечтатель Предупреждений : 5
|
|
В общем, есть задание написать пару скриптов на баше. Желательно без использования переменных.
Так вот, есть лог-файл со строчками вида:
Код: |
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
|
|
Слушай я чото ваще не знаю как что-либо посчитать не используя переменную Ну только если выводить палочки на экран и заставлять их считать юзера Ну можт я не секу))))) |
|
|
|
|
1ddr Гуру Предупреждений : 1
|
|
Ну конечно если это итеративный процесс. Так то 2 переменные сложить и выводить можно и без переменной, но вот чтобы хранить сумму надо переменную. |
|
|
|
|
sham ум, честь, совесть эпохи! Предупреждений : 4
|
|
delПоследний раз редактировалось: sham (Ср 23-03-22 : 02-41), всего редактировалось 1 раз |
|
|
|
|
ДобрыйФей Мечтатель Предупреждений : 5
|
|
1ddr
Ну, например, когда считается в другом задании количество удачных\неудачных подключений, то там теоретически можно обойтись без переменной с помощью замены кодов по маске, потом sort и uniq -c.
sham писал(а): |
Положить в стек, потом считать оттуда же. В форте так точно можно, в бэше не знаю, но должно быть. |
|
|
|
|
|
ДобрыйФей Мечтатель Предупреждений : 5
|
|
Поправка.
Проблема не в 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
|
|
|
|
|
|