Не могу додумать алгоритм, Перспективный, 17-Сен-17, 08:52 [смотреть все]Привет. Есть файл полученный awk '{print $3" "$8}' /var/log/access.log.1|sort|uniq -c >src 30 127.0.0.1 u1 23 192.168.0.2 u1 52 192.168.0.2 u3 106 192.168.0.2 u2 7 192.168.3.3 u2 36 192.168.3.3 u4Хочу вывести строки уникальные по второму полю (по ip), но где цифра в первом поле больше. Пока я застрял на таком. Двойным перебором сравниваю построчно, и если 2е поле совпадает и 1е поле больше, то печатаю строку. Для одинаковых выведенных строк к конце будет sort -u IFS=$'\n' for a in `cat src`; do # $b нужно чтобы взять 2е поле. пока не научился взять 2е поле сразу из $a b=${a% *} for i in `cat src`; do [ "$a" = "$i" ] && continue j=${i% *} if [ "${j#* }" = "${b#* }" ] && [ "${i%% *}" -gt "${a%% *}" ];then echo "$i" fi done done #./test123.sh|./123.sh |sort -u 106 192.168.0.2 u2 36 192.168.3.3 u4 52 192.168.0.2 u3 хотя по идее должен был получить 106 192.168.0.2 u2 36 192.168.3.3 u4 30 127.0.0.1 u1 Подскажите, где доделать алгоритм или сразу неверно начал решать и надо переделать?
|
- Не могу додумать алгоритм, Аноним, 14:33 , 17-Сен-17 (1)
cat src |sort -k1,1 -n -r |sort -k2,2 -u |sort -k1,1 -n -r
- Не могу додумать алгоритм, Перспективный, 15:13 , 17-Сен-17 (2) –1
> cat src |sort -k1,1 -n -r |sort -k2,2 -u |sort -k1,1 -n > -r Вот это ты крут, да. Спасибо! - Не могу додумать алгоритм, Перспективный, 15:26 , 17-Сен-17 (3) –1
> cat src |sort -k1,1 -n -r |sort -k2,2 -u |sort -k1,1 -n > -r Блин, так просто реально оказалось. Ну зато я кое-чему научился пока постигал баш, рекурсии и почти уже сделал с хэшами. Надеюсь изобретение велосипедика потом пригодится :)
- Не могу додумать алгоритм, Аноним, 11:48 , 21-Сен-17 (4)
>> cat src |sort -k1,1 -n -r |sort -k2,2 -u |sort -k1,1 -n >> -r > Блин, так просто реально оказалось. Ну зато я кое-чему научился пока постигал > баш, рекурсии и почти уже сделал с хэшами. Надеюсь изобретение велосипедика > потом пригодится :) Ко всем core utils следует читать маны целиком. И наверни книжку Classic Shell Scripting для начала. Баш не учи. Выучи чистый шелл и дальше сразу перл по книжкам с ламой. Все для чего не хватает чистого шелла (/bin/sh), пишешь на перле. Профит.
- Не могу додумать алгоритм, Аноним, 16:48 , 22-Сен-17 (5)
> Ко всем core utils следует читать маны целиком. И наверни книжку Classic > Shell Scripting для начала. Баш не учи. Выучи чистый шелл и > дальше сразу перл по книжкам с ламой. Все для чего не > хватает чистого шелла (/bin/sh), пишешь на перле. Профит.да!!
|