The OpenNET Project / Index page

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

Новая версия интерпретатора GNU Awk 5.1

18.04.2020 10:59

Представлен новый значительный выпуск реализации языка программирования AWK от проекта GNU - Gawk 5.1.0. AWK был разработан в 70-х годах прошлого века и не претерпел значительных изменений с середины 80-х годов, в которых был определен основной костяк языка, что позволило на протяжении последних десятилетий сохранить первозданную стабильность и простоту языка. Несмотря на преклонный возраст, AWK до сих пор активно используется администраторами для выполнения рутинных работ, связанных с разбором различного рода текстовых файлов и генерацией несложной результирующей статистики.

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

  • Номер версии API поднят до 3 (отражает изменения в ветке 5.x);
  • Устранены утечки памяти;
  • Обновлены компоненты сборочной инфраструктуры Bison 3.5.4, Texinfo 6.7, Gettext 0.20.1, Automake 1.16.2.
  • Переработано индексирование в руководстве, для форматирования которого теперь требуется пакет Texinfo 6.7;
  • В скрипт configure добавлена поддержка MSYS2;
  • Исправлены накопившиеся ошибки.


  1. Главная ссылка к новости (https://www.mail-archive.com/i...)
  2. OpenNews: Новая версия интерпретатора GNU Awk 5.0
  3. OpenNews: Новая версия языка программирования GNU Awk 4.2.0
  4. OpenNews: Новая версия языка программирования GNU Awk 4.1.0
  5. OpenNews: Увидел свет GNU Awk 4.0.0
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/52761-awk
Ключевые слова: awk, gawk
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (134) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 11:04, 18/04/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –11 +/
    К системд забыли привязать.
     
     
  • 2.15, VINRARUS (ok), 13:58, 18/04/2020 [^] [^^] [^^^] [ответить]  
  • +10 +/
    Это system:D привязана к awk!
     
  • 2.27, Аноним (27), 14:21, 18/04/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Systemd к GNU имеет отношение чуть более, чем никак. У них есть собственный системный менеджер Guix.
     
     
  • 3.32, user90 (?), 14:40, 18/04/2020 [^] [^^] [^^^] [ответить]  
  • +5 +/
    > системный менеджер Guix

    "Пакетный", тупица!!!)) А то, о чем ты хотел поведать, называется GNU Shepherd.

     
     
  • 4.33, Аноним (27), 14:42, 18/04/2020 [^] [^^] [^^^] [ответить]  
  • +6 +/
    Да, извини, описался :)
     

  • 1.2, Аноним (2), 11:14, 18/04/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Часто используете?
     
     
  • 2.3, Аноним (3), 11:23, 18/04/2020 [^] [^^] [^^^] [ответить]  
  • +15 +/
    да
     
     
     
    Часть нити удалена модератором

  • 4.34, Michael Shigorin (ok), 14:48, 18/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Предъявите.
     
  • 2.9, Аноним (9), 13:26, 18/04/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    А какие варианты? Ну не sed же, в самом деле)) Конечно, можно бы и Perl, но зачем, если есть специализированный инструмент.
     
     
  • 3.13, Аноним (13), 13:53, 18/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Сед норм. Кроме того баш имеет встроенные регулярки, можно избежать лишних внешних вызовов, что намного быстрее и меньше грузит. А 99% кода awk заключается в вывести энный элемент энной строки, всё равно вся логика в баше. В awk можно запихнуть разве что скрипт разбора, но никакого смысла этого делать, если ты умеешь в регулярки.
     
     
  • 4.20, VINRARUS (ok), 14:04, 18/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    >баш имеет встроенные регулярки, можно избежать лишних внешних вызовов

    но dash побыстрее будет в несколько раз

     
     
  • 5.23, Аноним (13), 14:12, 18/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    >>баш имеет встроенные регулярки, можно избежать лишних внешних вызовов
    > но dash побыстрее будет в несколько раз

    Ну не в несколько… В баше всё же намного больше фич, по классике придётся городить жуткие конструкции. Я сравнивал время, башизмы были намного быстрее вызова внешнего кода. Нагрузку не сравнивал правда.

     
     
  • 6.25, VINRARUS (ok), 14:17, 18/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    >В баше всё же намного больше фич

    Можна пример?

     
     
  • 7.39, Аноним (13), 14:56, 18/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    >>В баше всё же намного больше фич
    > Можна пример?

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

     
     
  • 8.43, VINRARUS (ok), 15:17, 18/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Да както ничего прорывного кроме большего функционала read не увидел ... текст свёрнут, показать
     
     
  • 9.46, Аноним (13), 15:42, 18/04/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Я что-то попробовал найти в интернете сравнения или хотя бы перечень башизмов и ... текст свёрнут, показать
     
     
  • 10.102, VINRARUS (ok), 21:50, 18/04/2020 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Извините, но ваш баш говно PRINT echo 11 PRINT 1 2 3 4 5 6 ... текст свёрнут, показать
     
     
  • 11.103, Аноним (13), 22:09, 18/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Хз при чём тут баш Man shift может ... текст свёрнут, показать
     
  • 9.85, Аноним (85), 20:03, 18/04/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    VAR regexp arr 1 2 3 echo arr 1 echo 01 09 set -o pipefai... текст свёрнут, показать
     
  • 5.28, Аноним (27), 14:25, 18/04/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >но dash побыстрее будет в несколько раз

    Но bash в дистрах изкоробки. Ну кроме тех, где busybox.

     
     
  • 6.29, VINRARUS (ok), 14:31, 18/04/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >Но bash в дистрах изкоробки.

    Это диверсия для внедрения system:D

     
     
  • 7.120, анонимуслинус (?), 01:58, 19/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    баш и авк в линухе столько же примерно сколько и сама система. думайте головой когда пишите. системд тогда и в проекте не было. и кстати очень хорошая и привычная оболочка. именно поэтому есть везде. а для обработки логов и прочего оч хорошо работает sed в связке с другими стандартными программами, с той же bc к примеру. просто народ после окон все хотят также в одном флаконе)) а линь изначально был приспособлен к работе сотен мелких прог друг с другом через те же конвееры(|) к примеру.
     
  • 5.35, Michael Shigorin (ok), 14:49, 18/04/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    dash глючен, увы.  Рассказывал уж и пример случая, который сам поймал, приводил.  Апстрим в курсе, забил (можете объяснить тем, что все ушли тащить в дебиан systemd, мне без разницы).
     
     
  • 6.38, myhand (ok), 14:54, 18/04/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Рассказывал уж и пример случая

    Например.

    > Апстрим в курсе, забил

    В смысле?  Вы открыли баг - и его закрыли?

     
     
  • 7.77, Michael Shigorin (ok), 19:17, 18/04/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Что удивительно, минут за десять в архивах почты и жаберной переписке с майнтейн... большой текст свёрнут, показать
     
     
  • 8.128, myhand (ok), 09:11, 19/04/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Вот и все что надо знать о взаимодействии ALT с апстримами Вот негодяи Исправ... текст свёрнут, показать
     
  • 6.48, bircoph (ok), 16:03, 18/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Я бы хотел увидеть пример. У меня дома /bin/sh -> dash и не нарадуюсь. Я от Глеба слышал, что в каком-то особо извращённом случае dash, по мнению Глеба, вёл себя некорректно. Но примера не видел и dash мне это использовать не мешает.
     
     
  • 7.55, Аноним (13), 17:15, 18/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Я тоже после некоторых событий /bin/sh -> zsh и не нарадуюсь. Потому что баш в определённом случае (не особо извращённом, просто более сложном, чем обычно принято писать на баше -- я всё пишу на шелле, хаха (не всё, шелл сдулся, когда понадобилось с zero-terminated строками работать)) вёл себя некорректно (не мой взгляд).

    Если бы не килотонны башизмов, я бы тоже может использовал даш, а там уже и находил его баги. Для интерактивного шелла zsh на 3 головы выше всех конкурентов, это понятно, но и в скриптах зшизмы весьма оказались удобны. А в чём смысл отказываться от дополнительных возможностей? Тормоза ведь не в шелле, а во внешнем коде…

     
     
  • 8.56, Аноним (13), 17:17, 18/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    selffix, нужно было прочитать байты из файла и это оказалось несколько осложнено... текст свёрнут, показать
     
  • 7.79, Michael Shigorin (ok), 19:22, 18/04/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Я бы хотел увидеть пример.

    Насколько припоминаю -- что-то вроде IFS=... while read . . .; do ...; done < ...; он _точно_ был в архивах, но к своему удивлению я сейчас не нашёл ни баги, ни письма, ни переписки в жабере именно с зафиксированной воспроизводилкой (на которую тогда некоторое время ушло, чтоб отловить и сузить).

     
  • 4.22, user90 (?), 14:11, 18/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Сед норм.

    Не, когда нужно учитывать и структуру документа, а не парсить 1 абзац, то делать это sed'ом я бы и пробовать не стал.

     
     
  • 5.24, Аноним (13), 14:15, 18/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    >> Сед норм.
    > Не, когда нужно учитывать и структуру документа, а не парсить 1 абзац,
    > то делать это sed'ом я бы и пробовать не стал.

    Как правило это даже не один абзац, а одна строка. Ну всегда несколько регулярок можно исполнить в 1 седе, если одного мало. У авк тот построчный разбор, что и у шела.

     
     
  • 6.26, user90 (?), 14:18, 18/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Человеку тоже свойственно читать построчно :) Так что это как раз Ок?
     
     
  • 7.36, Michael Shigorin (ok), 14:50, 18/04/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Воспринимаю awk и особенно sed всё-таки именно поточные строковые инструменты; если надо разбирать структуру, это другой класс задач (хотя, разумеется, нахимичить и такое бывает можно и на sed/awk).
     
     
  • 8.57, Аноним (57), 17:20, 18/04/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    sed - да хотя и на нем можно, но выглядит ужасно , а на awk вполне удобно все д... текст свёрнут, показать
     
     
  • 9.80, Michael Shigorin (ok), 19:23, 18/04/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Потому и и особенно Коллега и до недавних пор сосед по комнате очень люби... текст свёрнут, показать
     
  • 7.37, Аноним (13), 14:51, 18/04/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Человеку тоже свойственно читать построчно :) Так что это как раз Ок?

    Но только машина не человек. Просто потом в авк всё равно всё тот же шел с теми же самыми регулярками получается. Но может я как-то не так использую. Авк несомненно нужен, если баша нет, но он всё же внешняя утилита относительно шелла. Или писать всё на авк, или писать уже на шелле. 99% времени стараюсь использовать авк только чтобы распечатать столбец. (:

     
     
  • 8.49, bircoph (ok), 16:06, 18/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Awk нужен для одной простой вещи работы с полями Средствами голого bash это оч... текст свёрнут, показать
     
     
  • 9.51, VINRARUS (ok), 16:55, 18/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Можна пример сложного текста для парсинга, шобы чесно было ... текст свёрнут, показать
     
     
  • 10.58, bircoph (ok), 17:23, 18/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Да тут любого текста хватит, например https www gnu org licenses gpl-3 0 txt ... текст свёрнут, показать
     
     
  • 11.69, Аноним (69), 18:19, 18/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    bin bash exec 3 dev tcp www gnu org 80 if then echo Error ... текст свёрнут, показать
     
  • 11.99, VINRARUS (ok), 21:35, 18/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Пишу на чистом шеле по этому вот для dash или sh на забагованом bin bash не ра... текст свёрнут, показать
     
     
  • 12.140, bircoph (ok), 18:27, 20/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    А я разве говорил, что не делается Делается Только сравните свой код с awk ... текст свёрнут, показать
     
     
  • 13.141, VINRARUS (ok), 18:45, 20/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    В случае многократного запуска awk будет существенно тормозить работу shell прог... текст свёрнут, показать
     
     
  • 14.142, bircoph (ok), 21:23, 20/04/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    1 Не так уж и сильно, если mawk использовать 8212 он лёгкий 2 На больших ф... текст свёрнут, показать
     
  • 13.143, VINRARUS (ok), 22:38, 20/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    К стати, а мой код то короче AWK i gpl-3 0 txt Могу название функцыи укоротить... текст свёрнут, показать
     
  • 9.52, Аноним (13), 17:04, 18/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Cut определённо проще и легче И у него меньше внешних зависимостей Awk относит... текст свёрнут, показать
     
     
  • 10.72, Аноним84701 (ok), 18:36, 18/04/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    https packages debian org bullseye mawk dep libc6 ... текст свёрнут, показать
     
  • 9.54, Аноним (69), 17:14, 18/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    S abc def ghi A S for I 0 I A I do echo A I do... текст свёрнут, показать
     
  • 9.81, Michael Shigorin (ok), 19:36, 18/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    CODE set a b c d e f g h i j k l i 10 eval echo i CODE ой, молчи, я и ... текст свёрнут, показать
     

  • 1.5, vle (ok), 11:50, 18/04/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    вместе с http://github.com/cheusov/runawk превращается в почти полноценный мощный язык программирования.
     
     
  • 2.6, Аноним (6), 12:53, 18/04/2020 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Автор профиля на опеннете и автор репозитория один и тот же человек. Совпадение? Не думаю.
     
     
  • 3.12, vle (ok), 13:52, 18/04/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Автор профиля на опеннете и автор репозитория один и тот же человек.
    > Совпадение? Не думаю.

    нет, не совпадение. Я -- автор runawk, и довольно много писал и пишу на awk+runawk

     
  • 3.40, Michael Shigorin (ok), 14:57, 18/04/2020 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Более того, это очень крутой человек -- Лёша Чеусов. :)

    Кстати, надо бы http://packages.altlinux.org/runawk до 1.6.1 обновить (#250191).

     
     
  • 4.105, Аноним (105), 22:43, 18/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Интересно, а Алексей не был против такой выдачи соответствия его ника реальному имени?
     
     
  • 5.115, vle (ok), 00:30, 19/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Насчет фио -- на здоровье. Насчет крутого -- ну, леша как леша.
     
  • 5.125, ffirefox (?), 06:21, 19/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Из readme проекта:
    author:                                  Aleksey Cheusov <vle@gmx.net>

     
  • 4.116, vle (ok), 00:31, 19/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Для любителей awk штука очень полезная, и ничего не портит, так что вы там смотрите. Давно стабильно работает.
     
  • 2.10, neAnonim (?), 13:47, 18/04/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    мне не хватило мотивации в свое время искать учебники и примеры по awk.

    если у вас есть рекомендации сейчас самое время.

     
     
  • 3.16, vle (ok), 13:58, 18/04/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > мне не хватило мотивации в свое время искать учебники и примеры по
    > awk.
    > если у вас есть рекомендации сейчас самое время.

    Я не видел ничего лучше книжки Аарона Робинса же, ментейнера gawk.
    https://www.amazon.com/GAWK-GNU-AWK-Users-Guide/dp/1882114272/ref=sr_1_2?dchil

    Хотя у меня была другая обложка, красная.

    Наверное, можно и Брайна Кернигана почитать.
    https://www.amazon.com/AWK-Programming-Language-Alfred-Aho/dp/020107981X/ref=s

    хотя его изначальная реализация и POSIX не очень дружат. Возможно,
    в последнее время исправили. Точно многое исправляли в NetBSD.
    Сейчас все те же люди допилоивают ее здесь
    https://github.com/onetrueawk/awk

     
  • 3.17, user90 (?), 13:59, 18/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > учебники и примеры по awk

    Пфф! Все упирается в класс задач, которые ты собираешься решать. Для рядовых/повседневных никаких "учебников" точно не нужно, а примеров в инторнетах завались.

     
     
  • 4.21, vle (ok), 14:06, 18/04/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >> учебники и примеры по awk
    > Пфф! Все упирается в класс задач, которые ты собираешься решать. Для рядовых/повседневных
    > никаких "учебников" точно не нужно, а примеров в инторнетах завались.

    в свое время обучал коллег (не программистов) awk, shell и ruby. Мне это странно, но "логика" data-driven awk не программистам не очень зашла. Гораздо более сложный ruby они поняли как-то быстрее.

    Так что учебники все же нужны.

     
  • 3.30, Ordu (ok), 14:32, 18/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > мне не хватило мотивации в свое время искать учебники и примеры по awk.

    info gawk?

    Там вроде и с примерами, и как справочное пособие можно использовать, и под рукой всегда.

     
  • 2.14, vdb (?), 13:54, 18/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > вместе с http://github.com/cheusov/runawk превращается в почти полноценный мощный язык программирования.

    Зачем нужен «почти полноценный», когда есть полноценный Perl, без всяких «почти»?

     
     
  • 3.18, vle (ok), 14:02, 18/04/2020 [^] [^^] [^^^] [ответить]  
  • +3 +/
    >> вместе с http://github.com/cheusov/runawk превращается в почти полноценный мощный язык программирования.
    > Зачем нужен «почти полноценный», когда есть полноценный Perl, без всяких «почти»?

    скрипты на awk почти всегда оказываются сильно быстрее, чем такие же на ruby, python, perl, lua etc. Мне в свое время нужно было молотить сотни мегабайт текста, и это имело смысл.

     
     
  • 4.94, Аноним (57), 21:13, 18/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Это потому что во времена разработки sed и awk умели программировать эффективные движки регулярных выражений. Ко временам Perl и прочих Java это сакральное знание было утеряно :-)

    https://swtch.com/~rsc/regexp/regexp1.html

     
     
  • 5.117, vle (ok), 00:35, 19/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Все верно. И поэтому тоже, но не только. Просто сам по себе интерпретатор gawk быстрее.
    Кроме того, в силу убогости самого языка программирования структуры данных выбираются максимально простые и быстрые. И data-driven подход добавляет скорости в силу своей простоты.
     
  • 3.19, user90 (?), 14:03, 18/04/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Там сложнаа))) Ну действительно, Perl полноценный ЯП, и на его изучение потребуется больше усилий, чем на то, чтобы освоить awk.
     
     
  • 4.122, Crazy Alex (ok), 04:37, 19/04/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Не факт. Я в своё время прочёл верблюжью книгу и пошёл писать на перле, чем и зарабатывал какое-то время. А авк с седом раза четыре освоить пытался, но забывалось за два дня. Перл, в силу того, что он один язык, выучить проще, чем по отдельности шелл, сед и авк, плюс он (как бы некоторым ни казалось странным) имеет очень человеческую логику и по нему легко отрастает интуиция.

    В итоге моё правило - всё, в чём больше одного условия или пяти строк - писать на перле или питоне, если условия позволяют. Так по итогу и писать удобнее и осознавать через пол-года что это вообще было.

     
  • 2.50, bircoph (ok), 16:08, 18/04/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ух ты, не знал про runawk, спасибо, буду щупать.
     
  • 2.59, Аноним (57), 17:36, 18/04/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    quicksort и heapsort на awk порадовали :-)
     
     
  • 3.118, vle (ok), 00:36, 19/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    ну, в nawk их нет :-/
     

  • 1.7, Ю.Т. (?), 13:15, 18/04/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Всё-таки namespace в 5-й серии -- тоже значительное изменение.
     
  • 1.8, Аноним (9), 13:21, 18/04/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Заголовок звучит угрожающе))
     
     
  • 2.11, ssh (ok), 13:49, 18/04/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Заголовок звучит угрожающе))

    Думаешь если гнут авк, то cut и вовсе разрывают на куски?

     
     
  • 3.41, Michael Shigorin (ok), 15:01, 18/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Голодные cat'ы. :)
     

  • 1.44, Аноним (-), 15:17, 18/04/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Awk сила, sed могила :)
     
  • 1.53, Аноним (53), 17:08, 18/04/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Awk неплох, но только на csv или tsv файлах.

    Чуть более сложные структуры, и бери в руки perl.

    Смысл тратить время на брдания с awk?

     
     
  • 2.61, Аноним (57), 17:38, 18/04/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    awk есть везде (кастрированный - даже в бизибоксе), удобно по-быстрому однострочник написать, когда sed-а не хватает.
     
     
  • 3.63, Аноним (63), 17:48, 18/04/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Это когда не хватает sed, но хватает awk?
     
     
  • 4.65, Аноним (65), 18:02, 18/04/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Когда надо напечатать третью колонку.
     
  • 4.95, Аноним (57), 21:20, 18/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Например, есть csv/tsv, и надо посчитать сумму числовых значений в столбце X таких строк, где в столбце Y значение удовлетворяет регулярному выражению.
     
  • 4.127, ssh (ok), 09:08, 19/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Это когда не хватает sed, но хватает awk?

    Вот-вот, аж поперхнулся от высказывания предыдущего оратора. ^^

     
  • 2.67, Аноним (67), 18:16, 18/04/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Чуть более сложные структуры, и бери в руки perl.

    Почему perl, а не whatever else? Зачем нужен perl для ЧУТЬ более сложных структур, если есть язык X для ЧУТЬ более с СОВСЕМ сложных структур.

    А для всего остольного есть awk.

     
     
  • 3.71, Аноним (65), 18:26, 18/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Это возрастное.
     
  • 3.87, Аноним (85), 20:18, 18/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    За счёт аргументов интерпретатора perl удобнее для однострочников чем например python
     
  • 3.107, Аноним (53), 23:47, 18/04/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Потому что perl есть везде из коробки и прост, как грабли.
     
     
  • 4.110, Аноним (67), 00:08, 19/04/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > perl есть везде из коробки

    Где везде?

    > и прост, как грабли.

    Прост? Что в нем простого? Написан он как говно, если вы его исходный код читали. Сам язык - тоже говно.

     
     
  • 5.123, Crazy Alex (ok), 04:45, 19/04/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Сам язык крайне прост для освоения на начальном этапе (достаточно одну книжку прочесть), имеет великолепную документацию и адски гибок если залезть чуть дальше - туда, где blessed variables, tied hashes и препроцессинг кода, плюс имеет совершенно чудовищное количество модулей на все случаи жизни.

    Большой софт на нём только писать не надо - не для того он. А вот автоматизация всякая - отлично до сих пор идёт, сегодня вон ляпал скриптик для выдёргивания по z39.50 библиотечных данных для своей подборки книг - самое то.

     
     
  • 6.136, Аноним (136), 20:39, 19/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Сам язык крайне прост для освоения на начальном этапе (достаточно одну книжку прочесть),

    Бле, с верблюдом шоле на 1к страниц? Вот по awk книжек читать не надо.

    > адски гибок если залезть чуть дальше - туда, где blessed variables

    Все же адски урод, а не гибок.

    > А вот автоматизация всякая - отлично до сих пор идёт, сегодня вон ляпал скриптик для выдёргивания по z39.50 библиотечных данных для своей подборки книг - самое то.

    Ну вот я и говорю, что это write-only язык.

     
  • 2.86, Аноним (85), 20:16, 18/04/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Awk неплох, но только на csv или tsv файлах.

    Вы же в курсе что по стандарту CSV вот это тоже валидный CSV из одной записи и пяти колонок:
    1,2,"foo ""3""
    bar",4,5

    ?

    Как вы это на awk парсите, можно посмотреть?

     
     
  • 3.96, Аноним (57), 21:21, 18/04/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Это microsoft-овский csv, его придумывали не очень умные люди.
    Формат вида /etc/passwd с единственным способом экранирования разделителя намного более практичен.
     
     
  • 4.130, Аноним (130), 15:22, 19/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Это microsoft-овский csv

    Кто вам сказал такую чушь?

    Это https://www.ietf.org/rfc/rfc4180.txt к microsoft никакого отношения не имеет и более того microsoft не поддерживал его в своём excel (починили сейчас или нет, не знаю).

     
     
  • 5.138, Аноним (57), 23:40, 19/04/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Этот rfc написан в 2005 году и лишь фиксирует статус кво.
    CSV в виде "строка с разделителем" существовал, конечно, еще со времен перфокарт. А вот с кавычками и их удваиванием придумали в Microsoft, еще в самых ранних версиях Excel.
     
  • 3.100, Аноним (57), 21:35, 18/04/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    В Gnu AWK есть FPAT, с ним все парсится легко.

    https://www.gnu.org/software/gawk/manual/html_node/Splitting-By-Content.html

     
     
  • 4.131, Аноним (130), 17:21, 19/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Увы, нет, по вашей же ссылке написано:

    NOTE: Some programs export CSV data that contains embedded newlines between the double quotes. gawk provides no way to deal with this. Even though a formal specification for CSV data exists, there isn’t much more to be done; the FPAT mechanism provides an elegant solution for the majority of cases, and the gawk developers are satisfied with that.

    Стандартный RFCшный CSV даже на gawk не распарсить.

     
     
  • 5.137, Аноним (57), 23:36, 19/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Очевидно, что при построчном чтении распарсить случай с CRLF внутри кавычек не получится.

    Если очень уж хочется поддерживать этот кейс, никто не запрещает считать кавычки и конкатенировать со следующей строкой и так далее, пока не получится полная csv-строка.

     
  • 3.108, Аноним (53), 23:50, 18/04/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Никак. Я awk не пользуюсь, ибо не понимаю, зачем мучить себе мозг упоротыми конструкциями 70 летней давности. Тогда это было круто, и более не было ничего, но сейчас-то у нас есть перл и питон.
     

  • 1.62, Аноним (63), 17:46, 18/04/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Постоянно использую awk/gawk, sed, иногда и на баше текст форматирую, но если честно для 2020 это лютая дичь.
    Синтаксис отвратный, привыкал долго, даже после привыкания читать сложный sed быстро не получается, а баш с вовсе всегда по символу разбираю.
    Ну и самое главное это работа с несколькими строками - вторую, третью строчку после совпадения ещё можно как то заменить, но уже превращается в ад. Редактировать более сложные штуки (вроде сдвинуть на таб весь абзац начиная с нужного тега) лучше и не начинать(с башем и простые штуки становятся сложными). С помощью вима это сделать проще и в принципе проблем с ним нет.
     
     
  • 2.64, Аноним (63), 17:56, 18/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Добавлю про перл - работает дольше, принципиальной разницы с awk нет, синтаксис чуть чище и приятнее, но надо знать пару наркоманских трюков для однострочников. Гораздо лучше awk если проблему решает одна из стандартных библиотек. Но он не развивается, лично я жду когда его закопают и ничего нового на нем не пишу, включая однострочники(тяжело вспоминать).

    Питон - то же самое, но писать нужно ощутимо больше чем на perl, но и стандартные либы лучше и тк итак периодически его использую не для редактирования текста, то проблем с вспоминанием нет.

     
     
  • 3.66, Аноним (65), 18:04, 18/04/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Это ты не развиваешься. Перл теперь называется Raku и развивается теперь даже быстрее кобола.
     
     
  • 4.68, Аноним (67), 18:19, 18/04/2020 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Чаще посещайте церковь святого Ларии Уолла, кинувшего людей с 5 перлом. А вообще надеюсь, что он постепенно умрет.
     
     
  • 5.70, Аноним (65), 18:23, 18/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Дважды победитель на международном конкурсе запутанного кода? Да он мой кумир.
     
     
  • 6.111, Аноним (67), 00:10, 19/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Чтобы ты всю жизнь работал с такими кумирами.

    Ну именно такой perl и есть: write-only язык. И любят его как раз те, кто пишет одноразовые простыни.

     
  • 5.88, Аноним (85), 20:21, 18/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Perl5 поддерживается и будет дальше поддерживаться. Кинули всех авторы python3, не путай.
     
     
  • 6.112, Аноним (67), 00:15, 19/04/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > и будет дальше поддерживаться

    Ты свои влажные мечты всем не рассказывай. Пока на нем есть что-то важное, то будет как-то поддерживаться. Но важного то почти и не осталось.

    > Кинули всех авторы python3, не путай.

    C python как раз все ок. А что на питон смотришь? Изменять любишь? Двойная ты личность, неприятный аноним.

     
     
  • 7.132, Аноним (130), 17:26, 19/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Но важного то почти и не осталось.

    Это всего лишь твоё враньё, не более.

     
  • 4.75, user90 (?), 19:04, 18/04/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Хоть бы постыдился свою тупизну выставлять на всеобщее обозрение))

    "Perl6" к пятому имеет весьма отдаленное отношение.

     
     
  • 5.82, Аноним (65), 19:47, 18/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Это питон 2 к питон 3 имеет далекое отношение. Просто ты недалекий.
     
     
  • 6.89, Аноним (85), 20:23, 18/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Perl6 это другой язык, просто ты врёшь.
     
     
  • 7.92, Аноним (92), 21:05, 18/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Твой мозг другой. Там различий меньше чем даже между python 3.0 и 3.8. Единственное что в третьем питон совместимость внутри 3-ей версии в целом сохранена.
     
     
  • 8.133, Аноним (130), 17:28, 19/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Опять враньё ... текст свёрнут, показать
     
  • 7.113, Аноним (67), 00:16, 19/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    perl6 не существует. Есть рак и раки.
     
  • 2.83, Вебмакака (?), 19:48, 18/04/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    А вот если бы эти данные были структурированы, то писать адхок парсеры на мутных языках бы не пришлось. Но структуривать данные это миллениальское изобретение, в тру юникс вее думать об этом запрещено.
     
     
  • 3.90, Аноним (85), 20:26, 18/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Но структуривать данные это миллениальское изобретение, в тру юникс вее думать об этом запрещено.

    Вызывающе неверная информация.

     
  • 3.101, Аноним (57), 21:38, 18/04/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Структурировать, конечно же, надо в бинарном формате, желательно запатентованном.

    Структурирование в виде строк и столбцов с разделителями - это же слишком просто, некуда засунуть очередной фреймворк на 100 мегабайт блоба.

     
     
  • 4.124, Crazy Alex (ok), 04:54, 19/04/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Некуда засунуть метанюинформацию, зато вдоволь возможностей побороться с кавычками, странными симаолами, кодировками и так далее.

    Текст - это, конечно, универсально, но уж больно рискованно. Почему и появились всякие ключики -0 у разных там xargs - но, честное слово, можно было бы и дальше развить, юниксвею было бы только на пользу, если бы парсинг был попроще и побезопаснее. А так часто ровно поэтоиу вместо комбинирования предпочитают сделать комбайн.

     

  • 1.73, Аноним (73), 18:55, 18/04/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –7 +/
    Давайте ещё Кобол ада лисп фортран и пр. ископаемый хлам возродите
     
     
  • 2.78, Аноним (13), 19:18, 18/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Давайте ещё Кобол ада лисп фортран и пр. ископаемый хлам возродите

    Ада это такой раст 80х и оно живо у военщины, лисп просто отличный метаязык (жаль тормозной), фортран быстрее си (от немного до много, по ряду причин) и для него есть миллионы математического кода. Кобол стоило бы сравнивать с прологом. Правда, разница в том, что кобол сегодня используется различными бизнесами, а пролог вряд ли. Где-нибудь используется пролог? Вот авк используется в различных билд скриптах, где нет смаке и месон.

     
     
  • 3.84, Аноним (65), 19:54, 18/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Пролог в обучении использовался.
     
  • 3.97, Аноним84701 (ok), 21:21, 18/04/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Правда, разница в том, что кобол сегодня используется различными бизнесами, а пролог вряд ли. Где-нибудь используется пролог? Вот авк используется в различных билд скриптах, где нет смаке и месон.

    Кхе-кхе
    https://gerrit-review.googlesource.com/Documentation/prolog-cookbook.html

    ну или
    > “Most people probably have used SICStus Prolog without knowing it,” says Mats Carlsson, its lead developer. “One of our customers runs a flight booking system on SICStus which handles nearly a third of all airline tickets in the world.”

    или
    https://sicstus.sics.se/customers.html
    > Speech applications: NASA
    > Clarissa, a fully voice-operated procedure browser has been developed by the NASA Intelligent Systems Division.

    (причем, "место действия" - ISS)

     
  • 2.91, Аноним (85), 20:27, 18/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Зачем возрождать то что используется каждый день? Оно и так используется.
     
     
  • 3.93, Аноним (92), 21:05, 18/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Ну как бы зачем ворошить если работает.
     
  • 2.98, Аноним (57), 21:29, 18/04/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    IBM бесплатно обучает Коболу - не хватает специалистов. https://www.inputmag.com/tech/ibm-will-offer-free-cobol-training-to-address-ov

    Фортран до сих пор основной язык программирования в, например, астрофизическом моделировании.

    Ada широко используется в оборонке США, в системах организации воздушного движения, в банковских системах, в медицинских устройствах.

    Ну а Лисп, в различных его диалектах, вообще так широко используется, что перечислением можно заниматься сутки. Его увидеть можно где угодно, если кругозор пошире шлепания форм на Реакте и написания CRUD-ов на PHP.

     
  • 2.104, Аноним (27), 22:22, 18/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    >Давайте ещё Кобол ада лисп фортран и пр. ископаемый хлам возродите

    Ada ископаемый? На нём Пентагон и НАТО кодят.

     
     
  • 3.139, Аноним (139), 14:41, 20/04/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >Ada ископаемый? На нём Пентагон и НАТО кодят.

    Ага а еще в Пентагоне НАТО до сих пор есть компы 70-80ых годов прошлого века с 3,5'' дискетами - ну есс-но не случайно они на Аде кодят, он ведь под то железо еще создавался
    Совпадение - не думаю

     
     
  • 4.144, vle (ok), 17:28, 21/04/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >>Ada ископаемый? На нём Пентагон и НАТО кодят.
    > Ага а еще в Пентагоне НАТО до сих пор есть компы 70-80ых
    > годов прошлого века с 3,5'' дискетами - ну есс-но не случайно
    > они на Аде кодят, он ведь под то железо еще создавался
    > Совпадение - не думаю

    Список "заточенностей" языка Ада "под то железо" в студию, пожалуйста.

     

  • 1.106, твой лучший друг (?), 23:27, 18/04/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Обожаю авк. Правда, использовал сильнее, чем "давай суммируем вот этот столбец в выводе такой-то утилиты" толкьо один раз - решал задачку парсинга html отчётов, в домашних условиях. Сходу сделал на баше + всё-таки немного седа + башевское редактирование строк. Сказать, что было медленно, это ничего не сказать.
    Далее ушел на чистый баш, с минимумом вызовов сторонних утилит, но дешевле не вышло. Удивили возможности анализа строк, но выглядело коряво.
    Везде реализовывал парсер стейт-машиной.
    И потом как водится, как пишется,  буквально за вечер - два, сев читать учебник по авк,  сделал почти без регулярок на базе FS RS переменных бомбовский парсер - автомат.
    Сказать, что он летает, это преуменьшить. Слишком смело было бы говорить, что язык заточен под парсеры с автоматом состояний, но код получился красивый, без костылей, сходу читаемый и понятный даже без учебника.  Задаешь сепаратор записей, далее сепаратор полей, это в точности то, что нужно было. Генерил сиквел,без единого запуска стороних утилит, всё одним процессом. Открыл файлик, пробежался, закрыл. Просто бомбовски было. Был в восторге. Потом ещё немного почитал учебник, и единственно что добавил - вывел часть кода в функции, да и потом забил на улучшательство, даже не дочитал учебник честно говоря. но производительность порадовала.
     
     
  • 2.121, Аноним (57), 03:20, 19/04/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Хех. Я как-то давно на awk делал синхронизацию структур таблиц в mysql. На входе два --no-data дампа, на выходе alter table-ы. И, нет, information schema тогда не было, надо было парсить show create table.
     

  • 1.119, vle (ok), 00:48, 19/04/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Еще чуть-чуть в порядке саморекламы. Любителям консольных полезняшек или если вдруг понадобиться искать по регуляркам чуть более сложным образом.

    https://github.com/cheusov/jrep

    Не awk, конечно, но оно умеет хитро форматировать вывод. Для однострочников мегаполезно.

     
     
  • 2.126, ffirefox (?), 06:45, 19/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    На Java как-то тяжеловато для однострочников...
    А почему не модуль для runawk?
     
     
  • 3.129, vle (ok), 11:14, 19/04/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    По условию задачи на тот момент мне требовались регулярки именно от Java и быстро-быстро ими с консоли что-то искать. Если бы нашел Java Regexp на С, я бы просто слинковал BSD-ный grep c соответствующей либой. Но поскольку либо такую не нашел, пришлось писать grep на Java с нуля. Не на awk потому что POSIX regexps были не нужны.
     

  • 1.135, anonymous (??), 20:34, 19/04/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Чтоб весь софт так обновлялся. А то обычно накрутят ненужных фич и насыпят новых багов вместо того, чтобы старые исправлять.
     
  • 1.145, Аноним (145), 14:06, 22/04/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    awk это няшка
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



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

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