The OpenNET Project / Index page

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



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

"Новая версия языка программирования GNU Awk 5.0"  +/
Сообщение от opennews (ok), 12-Апр-19, 21:12 
Представлен (https://www.mail-archive.com/info-gnu@gnu.org/msg02589....) новый значительный выпуск реализации языка программирования AWK от проекта GNU - Gawk 5.0.0 (http://www.gnu.org/software/gawk). AWK был разработан в 70-х годах прошлого века и не претерпел значительных изменений с середины 80-х годов, в которых был определен основной костяк языка, что позволило на протяжении последних десятилетий сохранить первозданную стабильность и простоту языка. Несмотря на преклонный возраст, AWK до сих пор активно используется администраторами для выполнения рутинных работ, связанных с парсингом различного рода текстовых файлов и генерации несложной результирующей статистики.


Ключевые изменения:


-  Реализована поддержка пространств имён;

-  Добавлена поддержка определённых в стандарте POSIX спецификаторов формата "%a" и "%A" для функции printf;

-  Подпрограммы для обработки регулярных выражений заменены на аналоги из Gnulib (https://www.gnu.org/software/gnulib/);


-  Добавлен элемент PROCINFO["platform"] со строкой, идентифицирующей платформу, для которой собран gawk;

-  Запись в элементы SYMTAB, не являющиеся именами переменных, теперь приводит к выводу ошибки;

-  Переработан код обработки комментариев, решены проблемы с отображением комментариев в отформатированном выводе.

URL: https://www.mail-archive.com/info-gnu@gnu.org/msg02589....
Новость: https://www.opennet.ru/opennews/art.shtml?num=50504

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

Оглавление

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


1. "Новая версия языка программирования GNU Awk 5.0"  –43 +/
Сообщение от Albertio (ok), 12-Апр-19, 21:12 
Простите, а этот экспонат где-нибудь используется, кроме музея?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Новая версия языка программирования GNU Awk 5.0"  +5 +/
Сообщение от Дон Ягон (?), 12-Апр-19, 21:19 
Шутишь? Awk/Gawk вполне себе полезны, когда тащить perl/python избыточно.
Хотя, наверное, в большинстве линуксов сейчас python из коробки..
Это не есть плохо, но и не отменяет полезности awk.
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

19. "Новая версия языка программирования GNU Awk 5.0"  +4 +/
Сообщение от AnonPlus (?), 13-Апр-19, 00:55 
Во всяких дистрибутивах для роутером и прочей маломощной техники - самое то. Питона там из коробки нет
Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

21. "Новая версия языка программирования GNU Awk 5.0"  +4 +/
Сообщение от Дон Ягон (?), 13-Апр-19, 01:30 
> Во всяких дистрибутивах для роутером и прочей маломощной техники - самое то.
> Питона там из коробки нет

В *BSD, например, тоже. И в полноценных дистрибутивах linux некорторых, наверняка, тоже. Я просто не помню уже.
На мой взгляд, awk и python не следует противопоставлять, это инструменты разного калибра.

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

39. "Новая версия языка программирования GNU Awk 5.0"  +1 +/
Сообщение от пох (?), 14-Апр-19, 01:01 
> И в полноценных дистрибутивах linux некорторых, наверняка, тоже

они не могут считаться полноценными, поскольку редхатобиэм пропихнул пихон в стандарт LSB.
Единственные полноценные дистрибутивы, которые рискнули в конце-концов от него отойти, пихон как раз тщательно сохранили, и это убудебиан, там без него давным-давно ничего не работает.

> На мой взгляд, awk и python не следует противопоставлять, это инструменты разного калибра.

это просто кто-то не видел smtp сервера на awk.


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

40. "Новая версия языка программирования GNU Awk 5.0"  +1 +/
Сообщение от Дон Ягон (?), 14-Апр-19, 02:18 
>> И в полноценных дистрибутивах linux некорторых, наверняка, тоже
> они не могут считаться полноценными, поскольку редхатобиэм пропихнул пихон в стандарт LSB.
> Единственные полноценные дистрибутивы, которые рискнули в конце-концов от него отойти, пихон как раз тщательно сохранили, и это убудебиан, там без него давным-давно ничего не работает.

Поверю на слово - давно не интересовался подобным. На мой взгляд, python лишний в базовой системе, а так - нормальный язык. В своей нише.

>> На мой взгляд, awk и python не следует противопоставлять, это инструменты разного калибра.
> это просто кто-то не видел smtp сервера на awk.

Не видел. Видел веб-сервер на sh (может на bash - уже точно не помню) и тетрис на sed. И что? Троллейбус_из_батона.jpg
Полезность и нужность awk безусловна, но областей применения у python больше. И это не делает awk хуже. Просто такой вот расклад и всё, разные области применения - это нормально.

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

49. "Новая версия языка программирования GNU Awk 5.0"  +2 +/
Сообщение от barmaglot (??), 15-Апр-19, 08:59 
Все кто не знает что такое awk и зачем он нужен, точно не админы. А для тех кто любит пихон с хадупом, аналог на awk в 235 раз быстрее:

https://adamdrake.com/command-line-tools-can-be-235x-faster-...

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

55. "Новая версия языка программирования GNU Awk 5.0"  +1 +/
Сообщение от Дон Ягон (?), 15-Апр-19, 14:57 
> Все кто не знает что такое awk и зачем он нужен, точно не админы. А для тех кто любит пихон с хадупом, аналог на awk в 235 раз быстрее:
> https://adamdrake.com/command-line-tools-can-be-235x-faster-...

Я что-то такое когда-то видел. Спасибо за напоминание.

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

5. "Новая версия языка программирования GNU Awk 5.0"  +/
Сообщение от Onon (?), 12-Апр-19, 21:34 
Виндузятники таки будут хохотаться
grep -R awk /etc
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

45. "Новая версия языка программирования GNU Awk 5.0"  +/
Сообщение от x3who (?), 15-Апр-19, 02:10 
> grep -R awk /etc

/etc/libreport/ignored_words.conf:hawkey

!?

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

6. "Новая версия языка программирования GNU Awk 5.0"  +2 +/
Сообщение от myhand (ok), 12-Апр-19, 21:37 
В POSIX.1-2017, например.  Если это вам о чем-то говорит.
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

27. "Новая версия языка программирования GNU Awk 5.0"  +1 +/
Сообщение от Аноним (27), 13-Апр-19, 10:33 
То есть имеет не меньшее значение, чем такие востребованные утилиты, как asa, comm, compress, csplit и т. д. до uux.
Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

28. "Новая версия языка программирования GNU Awk 5.0"  +/
Сообщение от myhand (ok), 13-Апр-19, 11:00 
> То есть имеет не меньшее значение, чем такие востребованные утилиты, как asa,
> comm, compress, csplit и т. д. до uux.

Нет.  asa, compress, uux - опциональны.  Вот как comm, csplit - только более универсальная утилита.

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

7. "Новая версия языка программирования GNU Awk 5.0"  +7 +/
Сообщение от VINRARUS (ok), 12-Апр-19, 21:40 
> Простите, а этот экспонат где-нибудь используется, кроме музея?

За такое не прощают.

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

9. "Новая версия языка программирования GNU Awk 5.0"  +1 +/
Сообщение от IRASoldier (?), 12-Апр-19, 22:06 
Не знаю насчёт "GNU", но вот Awk разрабатывали Ахо (A), Керниган (K), кто третий (W) - навскидку не помню, гуглить сейчас лениво. Если эти фамилии что-то говорят - объяснять значимость сабжа не нужно, если не говорят - можно только посочувствовать вопрошающему.
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

20. "Новая версия языка программирования GNU Awk 5.0"  +1 +/
Сообщение от AnonPlus (?), 13-Апр-19, 00:57 
Peter Weinberger
Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

26. "Новая версия языка программирования GNU Awk 5.0"  +/
Сообщение от Аноним (27), 13-Апр-19, 10:23 
Они за свою жизнь написали огромную прорву софта, про большую часть которого сейчас не вспомнит никто, включая их самих. Так что само по себе авторство — не аргумент.
Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

46. "Новая версия языка программирования GNU Awk 5.0"  +/
Сообщение от x3who (?), 15-Апр-19, 02:15 
В любом случае это было бы прекрасное средство обработки потоков строк если бы не менялось так часто - до сих пор встречаются системы, на которых куча новых фишек не работает, не говоря уж об том новом всём.
Ответить | Правка | ^ к родителю #26 | Наверх | Cообщить модератору

53. "Новая версия языка программирования GNU Awk 5.0"  +/
Сообщение от Аноним (27), 15-Апр-19, 12:06 
> это было бы прекрасное средство обработки потоков строк если бы не менялось так часто

sudo apt install original-awk

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

12. "Новая версия языка программирования GNU Awk 5.0"  +6 +/
Сообщение от erthink (ok), 12-Апр-19, 22:16 
Думаю AWK переживет последнего кто будет работать с PowerShell.
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

14. "Новая версия языка программирования GNU Awk 5.0"  –1 +/
Сообщение от Ано. (?), 12-Апр-19, 22:30 
>  Простите, а этот экспонат где-нибудь используется, кроме музея?

В каких-то кассовых аппаратах.

Оно настолько эффективно, что востребовано.

Утилиты и ком.строка - АПИ к _любой_ функции системы. AWK - тула и разбора и формирования ответов АПИ.

Как наган для коммисара в деревне.

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

17. "Новая версия языка программирования GNU Awk 5.0"  –6 +/
Сообщение от Аноним (27), 13-Апр-19, 00:13 
> Простите, а этот экспонат где-нибудь используется, кроме музея?

Он используется всеми, откомментившими выше, и прочими неосиляторами cut(1) в одностроках уровня { print $1 }. А так, чтобы для серьёзных скриптов, нет.

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

18. "Новая версия языка программирования GNU Awk 5.0"  –1 +/
Сообщение от VINRARUS (ok), 13-Апр-19, 00:50 
Неосиляторы shell пользуются всем шо под руку попадёт, токо бы не читать и анализировать файл самим shell.

SED(){
#bu VINRARUS
while read LINEAGE_2
do
    case "$LINEAGE_2" in
    Swap*)
        echo "Slowpoke${LINEAGE_2#Swap}"
    ;;
    *)
        echo "$LINEAGE_2"
    ;;
    esac
done
}
SED < /proc/meminfo

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

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.

Ответить | Правка | ^ к родителю #22 | Наверх | 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  🙄
Ответить | Правка | ^ к родителю #25 | Наверх | Cообщить модератору

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

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

Ответить | Правка | ^ к родителю #31 | Наверх | 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

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

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

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

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

Ответить | Правка | ^ к родителю #33 | Наверх | 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)

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

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

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

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

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

Ответить | Правка | ^ к родителю #35 | Наверх | 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 вариации "притянуто за уши!/мне не нужно!/я не понял [значит не нужно]!".
Иначе ведь набрасывающего и подловить могут, на детальках-то.
В общем, все как обычно для неномерных, ничего нового, так что не переживайте!

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

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

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

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

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

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

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

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

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

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

Ответить | Правка | ^ к родителю #42 | Наверх | 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км до Москвы),  но я вообще-то не фанат - реалу реалово, формумам форумово ;)


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

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

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

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

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

Ответить | Правка | ^ к родителю #62 | Наверх | 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 
Нет, вообще не использовать текстовые файлы, если с ними надо работать как с реляционной БД. То есть с самого начала выбирать инструмент, наиболее подходящий для решения конкретной задачи.
Ответить | Правка | ^ к родителю #41 | Наверх | Cообщить модератору

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

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

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

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

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

Очевидно что ни с cut ни с awk вы никогда не сталкивались, у cut и awk разный алгоритм разбора на поля, они не взаимозаменяемы.

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

44. "Новая версия языка программирования GNU Awk 5.0"  +/
Сообщение от Аноним (27), 14-Апр-19, 10:57 
Что тебе ещё очевидно, тёзка? Представь себе, я в курсе про разные алгоритмы. А ещё я в курсе того, что алгоритм cut не подходит для разбора исключительно человекоориентированного текста, а пытаться его разбирать скриптами — себе дороже. Возможно, набьёшь себе шишек — тоже это поймёшь.
Ответить | Правка | ^ к родителю #38 | Наверх | Cообщить модератору

50. "Новая версия языка программирования GNU Awk 5.0"  +/
Сообщение от Аноним (50), 15-Апр-19, 09:31 
Для больших скриптов вестимо чаще используется python
а вот для однострочников awk - самое то

простейший пример

cat file|awk '{if($5>158) print $11}'

могу дать примеры и посложнее, но там придется слишком долго объяснять, что в них происходит

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

52. "Новая версия языка программирования GNU Awk 5.0"  +/
Сообщение от Andrey Mitrofanov (?), 15-Апр-19, 09:36 
>> Простите, а этот экспонат где-нибудь используется, кроме музея?
> Он используется всеми, откомментившими выше, и прочими неосиляторами cut(1) в одностроках
> уровня { print $1 }. А так, чтобы для серьёзных скриптов,
> нет.

Почти уговорил. Напиши мне на cut-е

| awk '!x[$0]++'

и я начну его изучать.

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

23. "Новая версия языка программирования GNU Awk 5.0"  +2 +/
Сообщение от Аноним (23), 13-Апр-19, 07:48 
Я использую, анализирую лог Apache.
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

47. "Новая версия языка программирования GNU Awk 5.0"  +/
Сообщение от x3who (?), 15-Апр-19, 02:29 
> Простите, а этот экспонат где-нибудь используется, кроме музея?

Им иногда удобно парсить логи и мониторинг/статистику, в частности если что-то зависит от предыдущего состояни или там надо посчитать что-то по строкам и вывести в некотором  формате.

Мне кажется, что у awk проблема в том, что им слишком долго не пользовались %) В продакшене системы, в которых масивами-то толком не попользуешься, а новые версии awk стали вылетать как из ружья.

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

3. "Новая версия языка программирования GNU Awk 5.0"  –5 +/
Сообщение от Аноним (3), 12-Апр-19, 21:21 
О, в соседнем треде про предпочтения программеров на Stack Overflow утверждали, что HTML - не язык. Интересно, что скажут здесь про заголовок...
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

8. "Новая версия языка программирования GNU Awk 5.0"  +3 +/
Сообщение от DiabloPC (ok), 12-Апр-19, 21:43 
> утверждали, что HTML - не язык

Вообще-то ещё как язык, только не язык программирования, о чём явно сказано в его названии: Hypertext MARKUP Language

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

13. "Новая версия языка программирования GNU Awk 5.0"  –1 +/
Сообщение от Аноним (13), 12-Апр-19, 22:18 
Спасибо, а то я не знал (на самом деле нет). В соседнем треде просто срач был забавный :)
Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

24. "Новая версия языка программирования GNU Awk 5.0"  +1 +/
Сообщение от Аноним (23), 13-Апр-19, 07:49 
Это полноценный язык с фунциями, математической библиотекой.
Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

4. "Новая версия языка программирования GNU Awk 5.0"  –1 +/
Сообщение от VINRARUS (ok), 12-Апр-19, 21:34 
А слабо повторить фокус gsed, с ускорением работы в 10 раз?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

10. "Новая версия языка программирования GNU Awk 5.0"  +/
Сообщение от Аноним (10), 12-Апр-19, 22:06 
Это awk такой медленный или вы имеете выиду, что он начнет искривлять вокруг компьютера пространство и время?
Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

11. "Новая версия языка программирования GNU Awk 5.0"  –2 +/
Сообщение от VINRARUS (ok), 12-Апр-19, 22:13 
Я имею в виду чюдеса оптимизации: https://opennet.ru/opennews/art.shtml?num=45815
Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

15. "Новая версия языка программирования GNU Awk 5.0"  –1 +/
Сообщение от YetAnotherOnanym (ok), 12-Апр-19, 22:43 
Зачем они его трогают?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

16. "Новая версия языка программирования GNU Awk 5.0"  +/
Сообщение от Onon (?), 12-Апр-19, 23:15 
Это как первый раз потрогать. Непонятно, что это такое, но очень возбуждает.
Ответить | Правка | ^ к родителю #15 | Наверх | Cообщить модератору

29. "Новая версия интерпретатора GNU Awk 5.0"  +/
Сообщение от Аноним (29), 13-Апр-19, 11:22 
Часто его использую, но синтаксис слишком устаревший и часто избыточен. Во простых случаях не хватает многосимвольных разделителей в cut(тогда бы его использовал). В остальных часто достаточно sed. И остаётся мааааленький класс задач, когда удобнее посчитать на awk, но как правило это легко сделать и на Питоне. С ситуациями когда питон не впихнуть (загрузка ядра, микроконтроллеры) практически не встречался, но как альтернатива - bash.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

30. "Новая версия интерпретатора GNU Awk 5.0"  –2 +/
Сообщение от Аноним (27), 13-Апр-19, 11:42 
> Во простых случаях не хватает многосимвольных разделителей в cut(тогда бы его использовал).

Это говорит о том, что ты парсишь что-то, не предназначенное для парсинга. В таких случаях надо не использовать awk, а поискать другое решение, как правило куда более простое.

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

51. "Новая версия интерпретатора GNU Awk 5.0"  +/
Сообщение от Аноним (50), 15-Апр-19, 09:34 
тебе дали файл, который нужно распарсить. и там, о Боже! многосимвольный разделитель. ты откажешься выполнять эту работу, т.к. этот файл не предназначен для парсинга?

P.S. не всегда можно многосимвольный разделитель заменить на односимвольный, т.к. в файле может встретиться любой из печатных символов.

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

54. "Новая версия интерпретатора GNU Awk 5.0"  +1 +/
Сообщение от vle (ok), 15-Апр-19, 14:37 
Если захочется странного, можно сюда заглянуть http://github.com/cheusov/runawk
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

56. "Новая версия интерпретатора GNU Awk 5.0"  +/
Сообщение от Аноним (56), 15-Апр-19, 16:43 
Всё-таки этот Че уже из локального мема перерастает в глобальный :)
Ответить | Правка | ^ к родителю #54 | Наверх | Cообщить модератору

57. "Новая версия интерпретатора GNU Awk 5.0"  +/
Сообщение от vle (ok), 15-Апр-19, 19:50 
> Всё-таки этот Че уже из локального мема перерастает в глобальный :)

Да ну. У меня ж свистелки и перделки для меня и моего друга

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

58. "Новая версия интерпретатора GNU Awk 5.0"  +/
Сообщение от vle (ok), 15-Апр-19, 20:01 
А вообще, я сюда зашел исключительно посмотреть, как Аарон описал фикс бага в 4.2.1,
на который я ему указал буквально неделю-две назад. Робинс, пожалуй -- самый лучший апстрим,
которого я когда-либо видел! Хороший дядька.

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

61. "Новая версия интерпретатора GNU Awk 5.0"  +/
Сообщение от freehckemail (ok), 16-Апр-19, 12:47 
> Если захочется странного, можно сюда заглянуть http://github.com/cheusov/runawk

Ммм. Коллекция модулей для awk. Полезно. Thx!

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

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

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




Спонсоры:
Слёрм
Inferno Solutions
Hosting by Ihor
Хостинг:

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