The OpenNET Project / Index page

[ новости/++ | форум | wiki | теги ]

форумы  правила/FAQ  поиск  регистрация  вход/выход  слежка  RSS
"Не могу додумать алгоритм"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (Shell скрипты)
Изначальное сообщение [ Отслеживать ]

"Не могу додумать алгоритм"  –1 +/
Сообщение от Перспективный on 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

Подскажите, где доделать алгоритм или сразу неверно начал решать и надо переделать?

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Не могу додумать алгоритм"  +/
Сообщение от Аноним (??) on 17-Сен-17, 14:33 
cat src |sort -k1,1 -n -r |sort -k2,2 -u |sort -k1,1 -n -r
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Не могу додумать алгоритм"  –1 +/
Сообщение от Перспективный on 17-Сен-17, 15:13 
> cat src |sort -k1,1 -n -r |sort -k2,2 -u |sort -k1,1 -n
> -r

Вот это ты крут, да. Спасибо!

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "Не могу додумать алгоритм"  –1 +/
Сообщение от Перспективный on 17-Сен-17, 15:26 
> cat src |sort -k1,1 -n -r |sort -k2,2 -u |sort -k1,1 -n
> -r

Блин, так просто реально оказалось. Ну зато я кое-чему научился пока постигал баш, рекурсии и почти уже сделал с хэшами. Надеюсь изобретение велосипедика потом пригодится :)

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

4. "Не могу додумать алгоритм"  +/
Сообщение от Аноним (??) on 21-Сен-17, 11:48 
>> cat src |sort -k1,1 -n -r |sort -k2,2 -u |sort -k1,1 -n
>> -r
> Блин, так просто реально оказалось. Ну зато я кое-чему научился пока постигал
> баш, рекурсии и почти уже сделал с хэшами. Надеюсь изобретение велосипедика
> потом пригодится :)

Ко всем core utils следует читать маны целиком. И наверни книжку Classic Shell Scripting для начала. Баш не учи. Выучи чистый шелл и дальше сразу перл по книжкам с ламой. Все для чего не хватает чистого шелла (/bin/sh), пишешь на перле. Профит.

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

5. "Не могу додумать алгоритм"  +/
Сообщение от Аноним (??) on 22-Сен-17, 16:48 
> Ко всем core utils следует читать маны целиком. И наверни книжку Classic
> Shell Scripting для начала. Баш не учи. Выучи чистый шелл и
> дальше сразу перл по книжкам с ламой. Все для чего не
> хватает чистого шелла (/bin/sh), пишешь на перле. Профит.

да!!

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема


  Закладки на сайте
  Проследить за страницей
Created 1996-2017 by Maxim Chirkov  
ДобавитьРекламаВебмастеруГИД  
Hosting by Ihor