LINUX.ORG.RU
ФорумAdmin

Скрипт на перле!!!!!


0

0

Нужен скрипт на перле чтоб с файла с таким содержанием
x.x.x.x y.y.y.y 3867 11029
IP IP байт быйт

Вот!! итаких строк мноооогооо

мне надо чтоб выводилось

IP IP MB MB

но и сортировка по 4 колоночке

чтоб в самом верху было самое большое число ((

Вот но немогу допедрить как
Если есть еще варианты предлогайте а то нада очень (((((


АА сдела ла так
sort -r -g -k 4 test пок а в байтах ))
все оки
теперь другая проблемка 
теперь из того что получилось надо выбрать по второму столбцу IP сумма  которых по 4-ому столбцу больше всех и сортировалось по возрастанию
и также по 1 столбцу Ip сумма которых по 3 столбцу больше всех )
 во как то так

Avolon
() автор топика
Ответ на: комментарий от Avolon

sort -r -g -k 4 test | awk '{ print $1 " " $2 " " $3/1048576 " " $4/1048576}'
Теперь в МБ. Как заказывали...
Но не на перле :)

disney
()
Ответ на: комментарий от Avolon

а что именно нужно - 2 списка с сортировкой по убыванию сумм чисел 3го столбца и сумм чисел 4го столбца, или 1 список с сортировкой только сумм 4го столбца, плюс потом его в пределах повторяющихся чисел в 1м столбце отсортировать по суммам чисел 3го столбца?

В любом случае - предлагаю вариации следующего алгоритма:
сначала сортируй список по одному из адресных столбцов, следующим прогоном суммируй значения в 3м/4м столбце для всех строк, в которых идёт 1 адрес.

Без реализации, даже не алгоритм, только идея :)

spunky ★★
()
Ответ на: комментарий от spunky

Вопрос еще такой ))
ip1 ip2 MB1 MB2
ip2 ip1 MB1 MB2 то есть переделать строчку эту

как сделать чтоб было так
ip1 ip2 MB1 MB2
ip1 ip2 MB2 MB1 

и все это  сравнить с файлом ,по первому столбцу, где прописаны 
подсетки такого вида

1.1.*.*
2.2.*.*

вывел  тока те строки где встречаются те Ip по первому столбцу адреса которые указаны в файле 

Воооо как то так

Avolon
() автор топика
Ответ на: комментарий от Avolon

Вопрос еще такой ))
ip1 ip2 MB1 MB2
ip2 ip1 MB1 MB2 то есть переделать строчку эту

поправка
с начало надо сравнить с файлом
такого вида
1.1.*.*
2.2.*.*

по 2 столбцу если он удовлетворяет то поменял на такой вид 
ip1 ip2 MB1 MB2
ip1 ip2 MB2 MB1 

и потом вывел  тока те строки где встречаются те Ip по первому столбцу адреса которые указаны в файле 

Воооо как то так

Avolon
() автор топика
Ответ на: комментарий от sdio

тогда как сделать
1.1.1.1 3.3.3.3 MB1 MB2
3.3.3.3 1.1.1.1 MB1 MB2 

с начало надо сравнить с файлом по 2 столбцу
такого вида
1.1.*.*
2.2.*.*

Avolon
() автор топика
Ответ на: комментарий от Avolon

хм, прошу прощения за, возможно, излишнее любопытство, но может ли глубокоуважаемый дон выдать начальную задачу? С реализацией не помогу, но может выдам алгоритм?

з.ы. задачу прошу именно потому, что у меня не получается понять что же необходимо сделать. А интересно :)

spunky ★★
()
Ответ на: комментарий от Avolon

есть файло 
структура такая
скакогоIP    на какойIP  исход  вхлдящ


0.0.0.0 262.30.140.34  36816718  77134 
277.72.54.4 0.0.0.0 0  334038  4023 
262.30.170.34 0.0.0.0   5436850  70616 
0.0.0.0 217.52.34.6 0  945658  3121 
252.30.170.34 0.0.0.0   211621  2380 
0.0.0.0 212.30.140.37   1603532  1848 
232.50.170.36 0.0.0.0   11023  125 
0.0.0.0 212.30.160.36   13218  93 
232.183.13.0 237.26.0.   78  1 
219.249.123.0 262.30.177.0 420 0

с этого файла надо сделать топ 10 качков инета  вот

Avolon
() автор топика
Ответ на: комментарий от Avolon

Регулярные выражения вам в помощь. Хоть Perl, хоть PHP.
После третьего поста забил пытаться вникнуть в задачу.

markevichus ★★★
()

рекомендую всё это перенести в бд, а потом развлекаться в таком стиле

select ip,ip2,sum(mb1),sum(mb2) from table group by ip2 order by 4 desc;

dimon555 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.