The OpenNET Project / Index page

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



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Новая версия языка программирования GNU Awk 5.0, opennews (ok), 12-Апр-19, (0) [смотреть все]

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


22. "Новая версия языка программирования GNU Awk 5.0"  +6 +/
Сообщение от Аноним84701 (ok), 13-Апр-19, 03:27 
>> Простите, а этот экспонат где-нибудь используется, кроме музея?
> Он используется всеми, откомментившими выше, и прочими неосиляторами cut(1) в одностроках уровня { print $1 }.

А можно увидеть аналоги на cut(1) от осиляторов?

 
awk '$1 > 10  && $1 < 30{sum+=$2} END {print "Sum;"sum, "Avg:"sum/NR}'
#  фильтруем дубликаты
awk '!filter[$0] {print $0}{filter[$0]++}'
# используем второе поле из первого файла в качестве критерия выборки строк второго
awk 'FNR==NR{id[$2]=$1} FNR<NR {if (id[$1]) print $0}'

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

25. "Новая версия языка программирования GNU Awk 5.0"  –4 +/
Сообщение от Аноним (27), 13-Апр-19, 10:06 
> А можно увидеть аналоги на cut(1) от осиляторов?

А можно увидеть не искусственные примеры, а реальные?

> фильтруем дубликаты

См. sort(1), uniq(1). И не надо рассказывать, что порядок строк важен, потому что в таком случае дубликаты будут идти подряд, и uniq их благополучно отфильтрует без сортировки. Если же они идут не подряд, значит порядок значения не имеет, и можно сортировать.

> используем второе поле из первого файла в качестве критерия выборки строк второго

Если тебе постоянно приходится решать такие задачи, категорически рекомендую SQL.

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

31. "Новая версия языка программирования GNU Awk 5.0"  +3 +/
Сообщение от Аноним84701 (ok), 13-Апр-19, 12:51 
>> А можно увидеть аналоги на cut(1) от осиляторов?
> А можно увидеть не искусственные примеры, а реальные?

Можно. Это были (подчищенные) примеры из history.


for i in $(seq 1 50); do $(time anon13377001; done|& tail -n +10 |awk '{sum+=$10} END {print "Sum;"sum, "Avg:"sum/NR}'

>> фильтруем дубликаты
> См. sort(1), uniq(1). И не надо рассказывать, что порядок строк важен, потому что в таком случае дубликаты будут идти подряд, и uniq их благополучно отфильтрует без сортировки. Если же они идут не подряд, значит
> порядок значения не имеет, и можно сортировать.

Яснопонятно. Л-логика 🙄

Во-первых, тогда уж сразу sort -u -k
Во-вторых, полей может быть > 1 (да-да, так тоже бывает) или же просто порядок строк может соотв. хронологии/порядку обращения к чему-то, но не совпадать с сортировочным критерием.
Чтобы далеко не ходить:


tail -n20 /tmp/anon/xtitle|tac
0x00c00004 ▏Midori     ▏ forum.opennet.ru
0x01200009 ▏URxvt      ▏ urxvt
0x00c00004 ▏Midori     ▏ forum.opennet.ru - "Судебный иск против Adblock Plus, манипулирующий изменением ..." (64)
0x01800003 ▏Claws-mail ▏ anonnet - Claws Mail 3.17.3
0x01200009 ▏URxvt      ▏ anon@anonim: ~
0x0260008a ▏Pale moon  ▏ Palmström: The Lambda Calculus for Absolute Dummies (like myself) - New Moon
0x01200097 ▏URxvt      ▏ urxvt
0x02400002 ▏mpv        ▏ Sugar Glider: The Airborne Marsupial - mpv
0x01200016 ▏URxvt      ▏ anon@anonim:/home/vids/pr0n
0x01200097 ▏URxvt      ▏ urxvt
0x01200016 ▏URxvt      ▏ anon@anonim:/home/vids/pr0n
0x01200009 ▏URxvt      ▏ anon@anonim: ~
0x012000b4 ▏URxvt      ▏ urxvt
0x01800003 ▏Claws-mail ▏ anonnet - Claws Mail 3.17.3
0x00c00004 ▏Midori     ▏ forum.opennet.ru - "Выпуск системного менеджера systemd 242" (165)
0x0220006f ▏Emacs      ▏ emacs@anonnet
0x0200000c ▏Geany      ▏ scanner.re - Geany
0x01200097 ▏URxvt      ▏ urxvt

Запись (xtitle) фокуса окон приложений в порядке обращения к ним. Как убрать дубликаты по WID (первое поле), сохранив порядок, с помощью sort/uniq?


>> используем второе поле из первого файла в качестве критерия выборки строк второго
> Если тебе постоянно приходится решать такие задачи, категорически рекомендую SQL.

См. список вверху, теперь берем актуальный список активных окон и с помощью того самого "искусственного" примера:


wmctrl -l | awk 'FNR==NR{id[$1]=$0} FNR<NR {if(id[$1]) print id[$1] }' /tmp/anon/winlist - | dmenu_alt_button  -l 30 -nf "#111111" -fn "Iosevka Slab:regular [...]

получаем косты^W кастомную переключалку между приложениями по горячей клавише, с поиском, фильтром, шахматессами и неплохой шустростью даже на старье десятилетней давности:

% time winswitch.sh
winswitch.sh  0,03s user 0,05s system 96% cpu 0,078 total

С нетерпением жду мастер-класс от анонима с использованием SQL  🙄
Ответить | Правка | Наверх | Cообщить модератору

32. "Новая версия языка программирования GNU Awk 5.0"  –4 +/
Сообщение от Аноним (27), 13-Апр-19, 13:49 
> получаем косты^W кастомную переключалку между приложениями по горячей клавише, с поиском, фильтром, шахматессами и неплохой шустростью даже на старье десятилетней давности

Извини, мне не понять твоих проблем, у меня i3 (тот, который wm, а не тот, который core).

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

33. "Новая версия языка программирования GNU Awk 5.0"  +2 +/
Сообщение от Аноним84701 (ok), 13-Апр-19, 15:45 
>> получаем косты^W кастомную переключалку между приложениями по горячей клавише, с поиском, фильтром, шахматессами и неплохой шустростью даже на старье десятилетней давности
> Извини, мне не понять твоих проблем,

Вам, анонимам без номера, не угодишь.
То примеры вам слишком искусственные, то слишком непонятные 🙄
Можешь заменить список фокуса окон жирными логами, где хочется сделать выборку по юзеру, ограничившись при этом только активными процессами (т.е. по выхлопу ps для полей user/PID). Потом оставить строки особо жирных процессов c RSS > 100500.

Или показать, как будет выглядеть сумма и среднее потребление памяти для группы процессов.
Или хотя бы как по быстрому поменять местами поля в строке с помощью cut …

Или я правильно понимаю, что это такое тихое и окончательное сруливание с темы, после всех громких заявлений о неосиляторах и прочих?

> у меня i3 (тот, который wm, а не тот, который core).

Ну хоть не арч 🙄


% i3 -v                                                                                          
i3 version 4.15-274-g27afc572 (2018-09-26, branch "next") © 2009 Michael Stapelberg and contributors
ll ~/.i3
total 64
drwxr-x---    2 anon  anon   512B 10 апр.  12:12 ./
drwxr-xr--  258 anon  anon    15K 13 апр.  12:18 ../
-rw-r-----    1 anon  anon    13K 10 апр.  12:12 config
-rw-r-----    1 anon  anon    13K 29 янв.  2018 config.29.01.18
-rw-r-----    1 anon  anon   12K 15 нояб.  2016 config.15.11.16
-rw-r-----    1 anon  anon   10K 15 нояб.  2014 config.15.11.14

Но вы продолжайте, продолжайте - нам (почти совсем) интересно!

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

34. "Новая версия языка программирования GNU Awk 5.0"  –1 +/
Сообщение от Аноним (27), 13-Апр-19, 16:47 
> Можешь заменить список фокуса окон жирными логами, где хочется сделать выборку по юзеру, ограничившись при этом только активными процессами (т.е. по выхлопу ps для полей user/PID). Потом оставить строки особо жирных процессов c RSS > 100500.

Ох уж эти нумерованные анонимы… Ты процессы, небось, берёшь из ps aux, угадал?
Нельзя парсить выхлоп ps. Точка. Он не для парсинга, он для людей предназначен. И, между прочим, без костылей на awk умеет делать выборку и по реальному и эффективному юзеру, и по пидам.

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

35. "Новая версия языка программирования GNU Awk 5.0"  +2 +/
Сообщение от Аноним84701 (ok), 13-Апр-19, 19:19 
>> Можешь заменить список фокуса окон жирными логами, где хочется сделать выборку по юзеру, ограничившись при этом только активными процессами (т.е. по выхлопу ps для полей user/PID). Потом оставить строки особо жирных процессов c RSS > 100500.
> Ох уж эти нумерованные анонимы… Ты процессы, небось, берёшь из ps aux, угадал?

Ты можешь вбивать их хоть ручками, я не против.
pgrep -u $(id -u username)
Кстати, у ps существуют еще другие опции:
ps -o pid= -o user= -xa
дарю.

> Нельзя парсить выхлоп ps. Точка. Он не для парсинга, он для людей предназначен. И, между прочим, без костылей на awk умеет делать выборку и по реальному и эффективному юзеру, и по пидам.

Ох уж эти неномерные - даже не могут прочитать толком, о чем речь:
" жирными логами, где хочется сделать выборку по юзеру, ограничившись при этом только активными процессам"
В общем:
"Talk is cheap, show me the code!"(c)

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

36. "Новая версия языка программирования GNU Awk 5.0"  –3 +/
Сообщение от Аноним (27), 13-Апр-19, 19:38 
> Кстати, у ps существуют еще другие опции:
> ps -o pid= -o user= -xa
> дарю.

Рад, что ты это знаешь. Но суть не меняется — выхлоп ps не предназначен для парсинга.

> Ох уж эти неномерные - даже не могут прочитать толком, о чем речь:
>" жирными логами, где хочется сделать выборку по юзеру, ограничившись при этом только активными процессам"

Прочитать это нетрудно, но вот понять, о каких таких логах идёт речь, и какое они имеют отношение к юзеру и активным процессам, я не смог, уж извини.

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

37. "Новая версия языка программирования GNU Awk 5.0"  +3 +/
Сообщение от Аноним84701 (ok), 13-Апр-19, 21:17 
> Прочитать это нетрудно, но вот понять, о каких таких логах идёт речь,
> и какое они имеют отношение к юзеру и активным процессам, я не смог, уж извини.

Да не, все норм -- по изящному игнорированию тех же пунктов
> for i in $(seq 1 50); do $(time anon13377001; done|& tail -n +10 |awk '{sum+=$10} END {print "Sum;"sum, "Avg:"sum/NR}
> Как убрать дубликаты по WID (первое поле), сохранив порядок, с помощью sort/uniq?
> Или хотя бы как по быстрому поменять местами поля в строке с помощью cut …

и  усиленному, авторитетному педалированию "ps не предназначен для парсинга"
я уже понял, что никакой конкретики не будет, будет юле^W вариации "притянуто за уши!/мне не нужно!/я не понял [значит не нужно]!".
Иначе ведь набрасывающего и подловить могут, на детальках-то.
В общем, все как обычно для неномерных, ничего нового, так что не переживайте!

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

42. "Новая версия языка программирования GNU Awk 5.0"  –1 +/
Сообщение от Аноним (27), 14-Апр-19, 10:49 
> я уже понял, что никакой конкретики не будет

Нет, не будет, пока ты будешь совать мне под нос куски кода и спрашивать, как это сделать без awk. Я не знаю, как что-то сделать, если мне неизвестна конечная цель. Я просто вижу, что таким путём я бы точно не пошёл, и объясняю, почему.

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

60. "Новая версия языка программирования GNU Awk 5.0"  +1 +/
Сообщение от freehckemail (ok), 16-Апр-19, 12:36 
>> я уже понял, что никакой конкретики не будет
> Нет, не будет, пока ты будешь совать мне под нос куски кода
> и спрашивать, как это сделать без awk.

Он-то знает, как это сделать без awk. Потому он его и юзает. Чтоб сил меньше тратить.

> Я не знаю, как что-то сделать, если мне неизвестна конечная цель.

Так и запишем, что анон, крикливо рассказывающий о "неосиляторах" -- сам же не осилил просто прочитать сравнительно небольшой текст.

> Я просто вижу, что таким путём я бы точно не пошёл, и объясняю, почему.

Мы тоже видим, почему ты бы им не пошёл. =)

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

59. "Новая версия языка программирования GNU Awk 5.0"  +/
Сообщение от freehckemail (ok), 16-Апр-19, 12:28 
Аноним84701, как на счёт устроить KSP, встретиться в реале и поесть рёбрышек? Я так чувствую, что уже пора опеннетовку организовывать. )
Ответить | Правка | К родителю #31 | Наверх | Cообщить модератору

62. "Новая версия языка программирования GNU Awk 5.0"  +/
Сообщение от Аноним84701 (ok), 16-Апр-19, 12:55 
> Аноним84701, как на счёт устроить KSP, встретиться в реале и поесть рёбрышек?
> Я так чувствую, что уже пора опеннетовку организовывать. )

Это смотря где (мне по географическим координатам где-то под 3000км до Москвы),  но я вообще-то не фанат - реалу реалово, формумам форумово ;)


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

63. "Новая версия языка программирования GNU Awk 5.0"  +/
Сообщение от freehckemail (ok), 16-Апр-19, 14:30 
>> Аноним84701, как на счёт устроить KSP, встретиться в реале и поесть рёбрышек?
>> Я так чувствую, что уже пора опеннетовку организовывать. )
> Это смотря где

Да, это серьёзный вопрос. Я вот давно хотел посетить Frankfurt Pub, который на Hanauer Landstraße. Впрочем, я не уверен, что данное предложение найдёт большую поддержку.

>  но я вообще-то не фанат - реалу реалово, формумам форумово

Никогда не знаешь, где познакомишься с полезными людьми.

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

41. "Новая версия языка программирования GNU Awk 5.0"  +1 +/
Сообщение от Нонейм (?), 14-Апр-19, 06:34 
>> А можно увидеть аналоги на cut(1) от осиляторов?
> А можно увидеть не искусственные примеры, а реальные?
>> фильтруем дубликаты
> См. sort(1), uniq(1). И не надо рассказывать, что порядок строк важен, потому
> что в таком случае дубликаты будут идти подряд, и uniq их
> благополучно отфильтрует без сортировки. Если же они идут не подряд, значит
> порядок значения не имеет, и можно сортировать.
>> используем второе поле из первого файла в качестве критерия выборки строк второго
> Если тебе постоянно приходится решать такие задачи, категорически рекомендую SQL.

Запускать файлы в базу, сортировать и потом делать печать? Нуууу, если Вы не умеете ничего другого, то возможно для Вас это единственный вариант...

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

43. "Новая версия языка программирования GNU Awk 5.0"  –2 +/
Сообщение от Аноним (27), 14-Апр-19, 10:52 
Нет, вообще не использовать текстовые файлы, если с ними надо работать как с реляционной БД. То есть с самого начала выбирать инструмент, наиболее подходящий для решения конкретной задачи.
Ответить | Правка | Наверх | Cообщить модератору

48. "Новая версия языка программирования GNU Awk 5.0"  +/
Сообщение от x3who (?), 15-Апр-19, 02:34 
>  Нет, вообще не использовать текстовые файлы, если с ними надо работать как с реляционной БД. То есть с самого начала выбирать инструмент, наиболее подходящий для решения конкретной задачи.

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

Хотя, конечно, это не оптимально.

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

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

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




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру