The OpenNET Project / Index page

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



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

"Новая версия интерпретатора GNU Awk 5.1 "  +/
Сообщение от opennews (??), 18-Апр-20, 11:04 
Представлен новый значительный выпуск реализации языка программирования AWK от проекта GNU - Gawk 5.1.0. AWK был разработан в 70-х годах прошлого века и не претерпел значительных изменений с середины 80-х годов, в которых был определен основной костяк языка, что позволило на протяжении последних десятилетий сохранить первозданную стабильность и простоту языка. Несмотря на преклонный возраст, AWK до сих пор активно используется администраторами для выполнения рутинных работ, связанных с разбором различного рода текстовых файлов и генерацией несложной результирующей статистики...

Подробнее: https://www.opennet.ru/opennews/art.shtml?num=52761

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

Оглавление

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

1. Сообщение от Аноним (1), 18-Апр-20, 11:04   –11 +/
К системд забыли привязать.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #15, #27

2. Сообщение от Аноним (2), 18-Апр-20, 11:14   –1 +/
Часто используете?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #3, #9

3. Сообщение от Аноним (3), 18-Апр-20, 11:23   +15 +/
да
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2

5. Сообщение от vle (ok), 18-Апр-20, 11:50   +2 +/
вместе с http://github.com/cheusov/runawk превращается в почти полноценный мощный язык программирования.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #6, #10, #14, #50, #59

6. Сообщение от Аноним (6), 18-Апр-20, 12:53   +3 +/
Автор профиля на опеннете и автор репозитория один и тот же человек. Совпадение? Не думаю.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #5 Ответы: #12, #40

7. Сообщение от Ю.Т. (?), 18-Апр-20, 13:15   +/
Всё-таки namespace в 5-й серии -- тоже значительное изменение.
Ответить | Правка | Наверх | Cообщить модератору

8. Сообщение от Аноним (9), 18-Апр-20, 13:21   +/
Заголовок звучит угрожающе))
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #11

9. Сообщение от Аноним (9), 18-Апр-20, 13:26   +2 +/
А какие варианты? Ну не sed же, в самом деле)) Конечно, можно бы и Perl, но зачем, если есть специализированный инструмент.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2 Ответы: #13

10. Сообщение от neAnonim (?), 18-Апр-20, 13:47   +1 +/
мне не хватило мотивации в свое время искать учебники и примеры по awk.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #5 Ответы: #16, #17, #30

11. Сообщение от ssh (ok), 18-Апр-20, 13:49   +2 +/
> Заголовок звучит угрожающе))

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #8 Ответы: #41

12. Сообщение от vle (ok), 18-Апр-20, 13:52   +2 +/
> Автор профиля на опеннете и автор репозитория один и тот же человек.
> Совпадение? Не думаю.

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

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

13. Сообщение от Аноним (13), 18-Апр-20, 13:53   +/
Сед норм. Кроме того баш имеет встроенные регулярки, можно избежать лишних внешних вызовов, что намного быстрее и меньше грузит. А 99% кода awk заключается в вывести энный элемент энной строки, всё равно вся логика в баше. В awk можно запихнуть разве что скрипт разбора, но никакого смысла этого делать, если ты умеешь в регулярки.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #9 Ответы: #20, #22

14. Сообщение от vdb (?), 18-Апр-20, 13:54   +/
> вместе с http://github.com/cheusov/runawk превращается в почти полноценный мощный язык программирования.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #5 Ответы: #18, #19

15. Сообщение от VINRARUS (ok), 18-Апр-20, 13:58   +10 +/
Это system:D привязана к awk!
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1

16. Сообщение от vle (ok), 18-Апр-20, 13:58   +2 +/
> мне не хватило мотивации в свое время искать учебники и примеры по
> awk.
> если у вас есть рекомендации сейчас самое время.

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

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

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

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

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

17. Сообщение от user90 (?), 18-Апр-20, 13:59   +/
> учебники и примеры по awk

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #10 Ответы: #21

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #14 Ответы: #94

19. Сообщение от user90 (?), 18-Апр-20, 14:03   +2 +/
Там сложнаа))) Ну действительно, Perl полноценный ЯП, и на его изучение потребуется больше усилий, чем на то, чтобы освоить awk.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #14 Ответы: #122

20. Сообщение от VINRARUS (ok), 18-Апр-20, 14:04   +/
>баш имеет встроенные регулярки, можно избежать лишних внешних вызовов

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #13 Ответы: #23, #28, #35

21. Сообщение от vle (ok), 18-Апр-20, 14:06   +2 +/
>> учебники и примеры по awk
> Пфф! Все упирается в класс задач, которые ты собираешься решать. Для рядовых/повседневных
> никаких "учебников" точно не нужно, а примеров в инторнетах завались.

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

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

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

22. Сообщение от user90 (?), 18-Апр-20, 14:11   +/
> Сед норм.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #13 Ответы: #24

23. Сообщение от Аноним (13), 18-Апр-20, 14:12   +/
>>баш имеет встроенные регулярки, можно избежать лишних внешних вызовов
> но dash побыстрее будет в несколько раз

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #20 Ответы: #25

24. Сообщение от Аноним (13), 18-Апр-20, 14:15   +/
>> Сед норм.
> Не, когда нужно учитывать и структуру документа, а не парсить 1 абзац,
> то делать это sed'ом я бы и пробовать не стал.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #22 Ответы: #26

25. Сообщение от VINRARUS (ok), 18-Апр-20, 14:17   +/
>В баше всё же намного больше фич

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #23 Ответы: #39

26. Сообщение от user90 (?), 18-Апр-20, 14:18   +/
Человеку тоже свойственно читать построчно :) Так что это как раз Ок?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #24 Ответы: #36, #37

27. Сообщение от Аноним (27), 18-Апр-20, 14:21   +1 +/
Systemd к GNU имеет отношение чуть более, чем никак. У них есть собственный системный менеджер Guix.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1 Ответы: #32

28. Сообщение от Аноним (27), 18-Апр-20, 14:25   +1 +/
>но dash побыстрее будет в несколько раз

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #20 Ответы: #29

29. Сообщение от VINRARUS (ok), 18-Апр-20, 14:31   –1 +/
>Но bash в дистрах изкоробки.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #28 Ответы: #120

30. Сообщение от Ordu (ok), 18-Апр-20, 14:32   +/
> мне не хватило мотивации в свое время искать учебники и примеры по awk.

info gawk?

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

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

32. Сообщение от user90 (?), 18-Апр-20, 14:40   +5 +/
> системный менеджер Guix

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #27 Ответы: #33, #34

33. Сообщение от Аноним (27), 18-Апр-20, 14:42   +6 +/
Да, извини, описался :)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #32

34. Сообщение от Michael Shigorinemail (ok), 18-Апр-20, 14:48   +/
Предъявите.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #32

35. Сообщение от Michael Shigorinemail (ok), 18-Апр-20, 14:49   –2 +/
dash глючен, увы.  Рассказывал уж и пример случая, который сам поймал, приводил.  Апстрим в курсе, забил (можете объяснить тем, что все ушли тащить в дебиан systemd, мне без разницы).
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #20 Ответы: #38, #48

36. Сообщение от Michael Shigorinemail (ok), 18-Апр-20, 14:50   –1 +/
Воспринимаю awk и особенно sed всё-таки именно поточные строковые инструменты; если надо разбирать структуру, это другой класс задач (хотя, разумеется, нахимичить и такое бывает можно и на sed/awk).
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #26 Ответы: #57

37. Сообщение от Аноним (13), 18-Апр-20, 14:51   –1 +/
> Человеку тоже свойственно читать построчно :) Так что это как раз Ок?

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #26 Ответы: #49

38. Сообщение от myhand (ok), 18-Апр-20, 14:54   –1 +/
> Рассказывал уж и пример случая

Например.

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #35 Ответы: #77

39. Сообщение от Аноним (13), 18-Апр-20, 14:56   +/
>>В баше всё же намного больше фич
> Можна пример?

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #25 Ответы: #43

40. Сообщение от Michael Shigorinemail (ok), 18-Апр-20, 14:57   –4 +/
Более того, это очень крутой человек -- Лёша Чеусов. :)

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #6 Ответы: #105, #116

41. Сообщение от Michael Shigorinemail (ok), 18-Апр-20, 15:01   +/
Голодные cat'ы. :)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #11

43. Сообщение от VINRARUS (ok), 18-Апр-20, 15:17   +/
Да както ничего прорывного кроме большего функционала read не увидел.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #39 Ответы: #46, #85

44. Сообщение от Аноним (-), 18-Апр-20, 15:17   +/
Awk сила, sed могила :)
Ответить | Правка | Наверх | Cообщить модератору

46. Сообщение от Аноним (13), 18-Апр-20, 15:42   –1 +/
Я что-то попробовал найти в интернете сравнения или хотя бы перечень башизмов и не смог этого сделать. В моём man bash хорошо описаны все возможности, посмотри повнимательней и сравни с обычными переносимыми (различий довольно много, не понимаю, в чём проблема выделить все непереносимые конструкции в 1 список, а не в 10).
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #43 Ответы: #102

48. Сообщение от bircoph (ok), 18-Апр-20, 16:03   +/
Я бы хотел увидеть пример. У меня дома /bin/sh -> dash и не нарадуюсь. Я от Глеба слышал, что в каком-то особо извращённом случае dash, по мнению Глеба, вёл себя некорректно. Но примера не видел и dash мне это использовать не мешает.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #35 Ответы: #55, #79

49. Сообщение от bircoph (ok), 18-Апр-20, 16:06   +/
Awk нужен для одной простой вещи: работы с полями. Средствами голого bash это очень неудобно и в ряде случаев просто невозможно. Ну простая задача: вывести поле с заданным номером. На awk это просто { print $i }, а на bash? Да, можно вырезать с помощью cut, но это неудобно и это уже не bash.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #37 Ответы: #51, #52, #54, #81

50. Сообщение от bircoph (ok), 18-Апр-20, 16:08   +1 +/
Ух ты, не знал про runawk, спасибо, буду щупать.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #5

51. Сообщение от VINRARUS (ok), 18-Апр-20, 16:55   +/
Можна пример сложного текста для парсинга, шобы чесно было?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #49 Ответы: #58

52. Сообщение от Аноним (13), 18-Апр-20, 17:04   +/
Cut определённо проще и легче. И у него меньше внешних зависимостей.

Awk относительно удобен для чего-то такого, но опять же, куда лучше на сед заменить.

| awk 'NR=='"$mainpl"'+1{print substr($12,1,10);}'

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #49 Ответы: #72

53. Сообщение от Аноним (53), 18-Апр-20, 17:08   –2 +/
Awk неплох, но только на csv или tsv файлах.

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

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

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #61, #67, #86

54. Сообщение от Аноним (69), 18-Апр-20, 17:14   +/
S="abc def ghi"
A=($S)
for ((I = 0; I < ${#A[@]}; I++)); do
    echo ${A[ I]}
done

S="abc;def;ghi"
IFS=';'
A=($S)
for ((I = 0; I < ${#A[@]}; I++)); do
    echo ${A[ I]}
done

служебный тэг code сломан, потому [ I]

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

55. Сообщение от Аноним (13), 18-Апр-20, 17:15   +/
Я тоже после некоторых событий /bin/sh -> zsh и не нарадуюсь. Потому что баш в определённом случае (не особо извращённом, просто более сложном, чем обычно принято писать на баше -- я всё пишу на шелле, хаха (не всё, шелл сдулся, когда понадобилось с zero-terminated строками работать)) вёл себя некорректно (не мой взгляд).

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #48 Ответы: #56

56. Сообщение от Аноним (13), 18-Апр-20, 17:17   +/
>с не zero-terminated строками

selffix, нужно было прочитать байты из файла и это оказалось несколько осложнено, потому что байты начинались с \0.

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

57. Сообщение от Аноним (57), 18-Апр-20, 17:20   +2 +/
sed - да (хотя и на нем можно, но выглядит ужасно), а на awk вполне удобно все делается, если изучить его чуть глубже, чем /pattern/ { print $1 }.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #36 Ответы: #80

58. Сообщение от bircoph (ok), 18-Апр-20, 17:23   +/
> Можна пример сложного текста для парсинга, шобы чесно было?

Да тут любого текста хватит, например: https://www.gnu.org/licenses/gpl-3.0.txt

Напишите код на bash и только на bash без использования внешних утилит (можно использовать bash builtin), которая выведет для каждой строки i-е поле, если оно существует. Поля разделяются произвольным числом пробелов. В рамках данного примера это i-e слово с прилегающими знаками пунктуации и иными символами, если они есть. Отсчёт полей с 1.

На awk это просто:
print $i

На bash тоже можно сделать, но мороки намного больше и сильно медленне работать будет:
while read -a a; do echo "${a[$((i-1))]}"; done

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #51 Ответы: #69, #99

59. Сообщение от Аноним (57), 18-Апр-20, 17:36   +1 +/
quicksort и heapsort на awk порадовали :-)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #5 Ответы: #118

61. Сообщение от Аноним (57), 18-Апр-20, 17:38   +1 +/
awk есть везде (кастрированный - даже в бизибоксе), удобно по-быстрому однострочник написать, когда sed-а не хватает.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #53 Ответы: #63

62. Сообщение от Аноним (63), 18-Апр-20, 17:46   +/
Постоянно использую awk/gawk, sed, иногда и на баше текст форматирую, но если честно для 2020 это лютая дичь.
Синтаксис отвратный, привыкал долго, даже после привыкания читать сложный sed быстро не получается, а баш с вовсе всегда по символу разбираю.
Ну и самое главное это работа с несколькими строками - вторую, третью строчку после совпадения ещё можно как то заменить, но уже превращается в ад. Редактировать более сложные штуки (вроде сдвинуть на таб весь абзац начиная с нужного тега) лучше и не начинать(с башем и простые штуки становятся сложными). С помощью вима это сделать проще и в принципе проблем с ним нет.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #64, #83

63. Сообщение от Аноним (63), 18-Апр-20, 17:48   –1 +/
Это когда не хватает sed, но хватает awk?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #61 Ответы: #65, #95, #127

64. Сообщение от Аноним (63), 18-Апр-20, 17:56   +/
Добавлю про перл - работает дольше, принципиальной разницы с awk нет, синтаксис чуть чище и приятнее, но надо знать пару наркоманских трюков для однострочников. Гораздо лучше awk если проблему решает одна из стандартных библиотек. Но он не развивается, лично я жду когда его закопают и ничего нового на нем не пишу, включая однострочники(тяжело вспоминать).

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #62 Ответы: #66

65. Сообщение от Аноним (65), 18-Апр-20, 18:02   +2 +/
Когда надо напечатать третью колонку.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #63

66. Сообщение от Аноним (65), 18-Апр-20, 18:04   –2 +/
Это ты не развиваешься. Перл теперь называется Raku и развивается теперь даже быстрее кобола.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #64 Ответы: #68, #75

67. Сообщение от Аноним (67), 18-Апр-20, 18:16   –2 +/
> Чуть более сложные структуры, и бери в руки perl.

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #53 Ответы: #71, #87, #107

68. Сообщение от Аноним (67), 18-Апр-20, 18:19   –3 +/
Чаще посещайте церковь святого Ларии Уолла, кинувшего людей с 5 перлом. А вообще надеюсь, что он постепенно умрет.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #66 Ответы: #70, #88

69. Сообщение от Аноним (69), 18-Апр-20, 18:19   +/
#!/bin/bash
exec 3<> /dev/tcp/www.gnu.org/80
if (($?)); then
    echo "Error!"
    exit 1
fi
printf "GET /licenses/gpl-3.0.txt HTTP/1.0\r\n" >&3
printf "Host: www.gnu.org\r\n" >&3
printf "Connection: close\r\n\r\n" >&3
while IFS= read L <&3 ; do
    A=($L)
    echo "$L"
    echo ${A[2]}
done
exit 0
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #58

70. Сообщение от Аноним (65), 18-Апр-20, 18:23   +/
Дважды победитель на международном конкурсе запутанного кода? Да он мой кумир.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #68 Ответы: #111

71. Сообщение от Аноним (65), 18-Апр-20, 18:26   +/
Это возрастное.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #67

72. Сообщение от Аноним84701 (ok), 18-Апр-20, 18:36   +1 +/
> Cut определённо проще и легче. И у него меньше внешних зависимостей.

https://packages.debian.org/bullseye/mawk
dep: libc6

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

73. Сообщение от Анонимemail (73), 18-Апр-20, 18:55   –7 +/
Давайте ещё Кобол ада лисп фортран и пр. ископаемый хлам возродите
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #78, #91, #98, #104

75. Сообщение от user90 (?), 18-Апр-20, 19:04   +1 +/
Хоть бы постыдился свою тупизну выставлять на всеобщее обозрение))

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #66 Ответы: #82

77. Сообщение от Michael Shigorinemail (ok), 18-Апр-20, 19:17   –1 +/
Что удивительно, минут за десять в архивах почты и жаберной переписке с майнтейнером так и не нашёл, но это точно было что-то с read в цикле вроде такого: http://bugzilla.altlinux.org/21229

Помнится, Лёша тогда и отмечал -- мол, знают, но не чинят.  После чего я идти вешать уже не стал.  Давайте так: если кто-то жаждет принять участие в исправлении, могу порыться ещё, потому что баг пришлось обходить.  А пока вещдоков выложить не могу -- остаётся моё слово малость заинтересованного (в том, чтоб всё же работало так или иначе).

PS: сборочная система dash тоже хрупкая -- на такое и я с lcc напоролся вслед за другими с другим: http://bugzilla.altlinux.org/31754

PPS: вдруг кому-то пригодится перловый парсер sh/bash, раз уж наткнулся в своих архивах на ссылку:

> не могу удержаться: https://github.com/dmage/shell_parser
> мой коллега на спор написал парсер шелла
> при этом задача не выполнить, а проанализировать
> это открывает целый ряд возможностей
> этот парсер может определить нужен ли bash или это dash
> кстати, он нашёл отклонения в стандарте в dash :)
> при этом у этого парсера очень мало внешних зависимостей
> Коллега довёл парсер до состояния, что он без проблем парсит
> posix-совместимый шелл. даже configure'ы осиливает :)

И ещё занятное (восстановил/разбил цитату, чтоб форум её снова не порезал)
> кстати, узнал, что конструция: for a; do :; done неправильная с точки зрения posix
> ';' после a не должно быть
> но оказывается, что все шеллы это понимают
> хотя в грамматике шелла это недопустимо

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #38 Ответы: #128

78. Сообщение от Аноним (13), 18-Апр-20, 19:18   +/
> Давайте ещё Кобол ада лисп фортран и пр. ископаемый хлам возродите

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #73 Ответы: #84, #97

79. Сообщение от Michael Shigorinemail (ok), 18-Апр-20, 19:22   –2 +/
> Я бы хотел увидеть пример.

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

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

80. Сообщение от Michael Shigorinemail (ok), 18-Апр-20, 19:23   –2 +/
> sed - да (хотя и на нем можно, но выглядит ужасно), а
> на awk вполне удобно все делается, если изучить его чуть глубже,
> чем /pattern/ { print $1 }.

Потому и "и особенно". :)  Коллега и до недавних пор сосед по комнате очень любит awk, показывал занятные штуки из своей практики на нём.

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

81. Сообщение от Michael Shigorinemail (ok), 18-Апр-20, 19:36   +/
> Ну простая задача: вывести поле с заданным номером.
> На awk это просто { print $i }, а на bash?

set a b c d e f g h i j k l; i=10; eval echo \${$i}
(ой, молчи, я и так знаю всё, что ты хочешь сказать по этому поводу ;-)

PS: на любимом ресурсе одного из старожилов подсказывают, что в случае bash есть ещё variable indirection, про который я в мане не замечал:

---
#!/bin/bash
n=3
echo ${!n}
--- http://stackoverflow.com/questions/1497811/how-to-get-the-nt...

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

82. Сообщение от Аноним (65), 18-Апр-20, 19:47   +/
Это питон 2 к питон 3 имеет далекое отношение. Просто ты недалекий.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #75 Ответы: #89

83. Сообщение от Вебмакака (?), 18-Апр-20, 19:48   –2 +/
А вот если бы эти данные были структурированы, то писать адхок парсеры на мутных языках бы не пришлось. Но структуривать данные это миллениальское изобретение, в тру юникс вее думать об этом запрещено.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #62 Ответы: #90, #101

84. Сообщение от Аноним (65), 18-Апр-20, 19:54   +/
Пролог в обучении использовался.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #78

85. Сообщение от Аноним (85), 18-Апр-20, 20:03   +2 +/
[[ $VAR =~ .*regexp.* ]]

arr=(1 2 3)
echo ${arr[1]}

echo {01..09}

set -o pipefail

cmd <<<$VAR

for (( i = 0; i < 10; i++ )); do echo $i; done

trap 'echo was err' ERR

date | tee >(md5sum)

( flock -n $FD || { echo "locked"; exit 1; }; echo do work; ) {FD}>/tmp/my.lockfile


то что сходу вспомнилось, можно ещё это посмотреть https://www.gnu.org/software/bash/manual/bash.html#Major-Dif...

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

86. Сообщение от Аноним (85), 18-Апр-20, 20:16   +1 +/
> Awk неплох, но только на csv или tsv файлах.

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

?

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #53 Ответы: #96, #100, #108

87. Сообщение от Аноним (85), 18-Апр-20, 20:18   +/
За счёт аргументов интерпретатора perl удобнее для однострочников чем например python
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #67

88. Сообщение от Аноним (85), 18-Апр-20, 20:21   +/
Perl5 поддерживается и будет дальше поддерживаться. Кинули всех авторы python3, не путай.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #68 Ответы: #112

89. Сообщение от Аноним (85), 18-Апр-20, 20:23   +/
Perl6 это другой язык, просто ты врёшь.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #82 Ответы: #92, #113

90. Сообщение от Аноним (85), 18-Апр-20, 20:26   +/
> Но структуривать данные это миллениальское изобретение, в тру юникс вее думать об этом запрещено.

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

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

91. Сообщение от Аноним (85), 18-Апр-20, 20:27   +/
Зачем возрождать то что используется каждый день? Оно и так используется.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #73 Ответы: #93

92. Сообщение от Аноним (92), 18-Апр-20, 21:05   +/
Твой мозг другой. Там различий меньше чем даже между python 3.0 и 3.8. Единственное что в третьем питон совместимость внутри 3-ей версии в целом сохранена.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #89 Ответы: #133

93. Сообщение от Аноним (92), 18-Апр-20, 21:05   +/
Ну как бы зачем ворошить если работает.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #91

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #18 Ответы: #117

95. Сообщение от Аноним (57), 18-Апр-20, 21:20   +/
Например, есть csv/tsv, и надо посчитать сумму числовых значений в столбце X таких строк, где в столбце Y значение удовлетворяет регулярному выражению.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #63

96. Сообщение от Аноним (57), 18-Апр-20, 21:21   –1 +/
Это microsoft-овский csv, его придумывали не очень умные люди.
Формат вида /etc/passwd с единственным способом экранирования разделителя намного более практичен.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #86 Ответы: #130

97. Сообщение от Аноним84701 (ok), 18-Апр-20, 21:21   +1 +/
> Правда, разница в том, что кобол сегодня используется различными бизнесами, а пролог вряд ли. Где-нибудь используется пролог? Вот авк используется в различных билд скриптах, где нет смаке и месон.

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

ну или
> “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)

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

98. Сообщение от Аноним (57), 18-Апр-20, 21:29   +1 +/
IBM бесплатно обучает Коболу - не хватает специалистов. https://www.inputmag.com/tech/ibm-will-offer-free-cobol-trai...

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

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

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

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

99. Сообщение от VINRARUS (ok), 18-Апр-20, 21:35   +/
>Напишите код на bash и только на bash без использования внешних утилит (можно использовать bash builtin), которая выведет для каждой строки i-е поле, если оно существует. Поля разделяются произвольным числом пробелов. В рамках данного примера это i-e слово с прилегающими знаками пунктуации и иными символами, если они есть. Отсчёт полей с 1.

Пишу на чистом шеле по этому вот для dash или sh (на забагованом /bin/bash не работает, шо ещо раз подтверждает шо он из говнокода).
Это элементарно делается, при чом многими способами, вот один из них, щитай нативный:
#!/bin/dash
AWK(){
eval "print(){
echo \"\$$1\"
}"
while read cat
do
print $cat
done  < $2
}
AWK 2 /home/gpl-3.0.txt

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #58 Ответы: #140

100. Сообщение от Аноним (57), 18-Апр-20, 21:35   +1 +/
В Gnu AWK есть FPAT, с ним все парсится легко.

https://www.gnu.org/software/gawk/manual/html_node/Splitting...

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #86 Ответы: #131

101. Сообщение от Аноним (57), 18-Апр-20, 21:38   +1 +/
Структурировать, конечно же, надо в бинарном формате, желательно запатентованном.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #83 Ответы: #124

102. Сообщение от VINRARUS (ok), 18-Апр-20, 21:50   –4 +/
Извините, но ваш баш говно.
PRINT(){
echo "$11"
}
PRINT +1+ +2+ +3+ +4+ +5+ +6+ +7+ +8+ +9+ +10+ +11+ +12+

Какого оно "$11" воспринимает как "${1}1"?

Или я шото пропустил и bash не является POSIX совместимым интерпритатором шел кода?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #46 Ответы: #103

103. Сообщение от Аноним (13), 18-Апр-20, 22:09   +/
Хз при чём тут баш. Man shift может.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #102

104. Сообщение от Аноним (27), 18-Апр-20, 22:22   +/
>Давайте ещё Кобол ада лисп фортран и пр. ископаемый хлам возродите

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #73 Ответы: #139

105. Сообщение от Аноним (105), 18-Апр-20, 22:43   +/
Интересно, а Алексей не был против такой выдачи соответствия его ника реальному имени?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #40 Ответы: #115, #125

106. Сообщение от твой лучший друг (?), 18-Апр-20, 23:27   +2 +/
Обожаю авк. Правда, использовал сильнее, чем "давай суммируем вот этот столбец в выводе такой-то утилиты" толкьо один раз - решал задачку парсинга html отчётов, в домашних условиях. Сходу сделал на баше + всё-таки немного седа + башевское редактирование строк. Сказать, что было медленно, это ничего не сказать.
Далее ушел на чистый баш, с минимумом вызовов сторонних утилит, но дешевле не вышло. Удивили возможности анализа строк, но выглядело коряво.
Везде реализовывал парсер стейт-машиной.
И потом как водится, как пишется,  буквально за вечер - два, сев читать учебник по авк,  сделал почти без регулярок на базе FS RS переменных бомбовский парсер - автомат.
Сказать, что он летает, это преуменьшить. Слишком смело было бы говорить, что язык заточен под парсеры с автоматом состояний, но код получился красивый, без костылей, сходу читаемый и понятный даже без учебника.  Задаешь сепаратор записей, далее сепаратор полей, это в точности то, что нужно было. Генерил сиквел,без единого запуска стороних утилит, всё одним процессом. Открыл файлик, пробежался, закрыл. Просто бомбовски было. Был в восторге. Потом ещё немного почитал учебник, и единственно что добавил - вывел часть кода в функции, да и потом забил на улучшательство, даже не дочитал учебник честно говоря. но производительность порадовала.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #121

107. Сообщение от Аноним (53), 18-Апр-20, 23:47   –1 +/
Потому что perl есть везде из коробки и прост, как грабли.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #67 Ответы: #110

108. Сообщение от Аноним (53), 18-Апр-20, 23:50   –2 +/
Никак. Я awk не пользуюсь, ибо не понимаю, зачем мучить себе мозг упоротыми конструкциями 70 летней давности. Тогда это было круто, и более не было ничего, но сейчас-то у нас есть перл и питон.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #86

110. Сообщение от Аноним (67), 19-Апр-20, 00:08   +1 +/
> perl есть везде из коробки

Где везде?

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #107 Ответы: #123

111. Сообщение от Аноним (67), 19-Апр-20, 00:10   +/
Чтобы ты всю жизнь работал с такими кумирами.

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

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

112. Сообщение от Аноним (67), 19-Апр-20, 00:15   –2 +/
> и будет дальше поддерживаться

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #88 Ответы: #132

113. Сообщение от Аноним (67), 19-Апр-20, 00:16   +/
perl6 не существует. Есть рак и раки.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #89

115. Сообщение от vle (ok), 19-Апр-20, 00:30   +/
Насчет фио -- на здоровье. Насчет крутого -- ну, леша как леша.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #105

116. Сообщение от vle (ok), 19-Апр-20, 00:31   +/
Для любителей awk штука очень полезная, и ничего не портит, так что вы там смотрите. Давно стабильно работает.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #40

117. Сообщение от vle (ok), 19-Апр-20, 00:35   +/
Все верно. И поэтому тоже, но не только. Просто сам по себе интерпретатор gawk быстрее.
Кроме того, в силу убогости самого языка программирования структуры данных выбираются максимально простые и быстрые. И data-driven подход добавляет скорости в силу своей простоты.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #94

118. Сообщение от vle (ok), 19-Апр-20, 00:36   +/
ну, в nawk их нет :-/
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #59

119. Сообщение от vle (ok), 19-Апр-20, 00:48   –1 +/
Еще чуть-чуть в порядке саморекламы. Любителям консольных полезняшек или если вдруг понадобиться искать по регуляркам чуть более сложным образом.

https://github.com/cheusov/jrep

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

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

120. Сообщение от анонимуслинус (?), 19-Апр-20, 01:58   +/
баш и авк в линухе столько же примерно сколько и сама система. думайте головой когда пишите. системд тогда и в проекте не было. и кстати очень хорошая и привычная оболочка. именно поэтому есть везде. а для обработки логов и прочего оч хорошо работает sed в связке с другими стандартными программами, с той же bc к примеру. просто народ после окон все хотят также в одном флаконе)) а линь изначально был приспособлен к работе сотен мелких прог друг с другом через те же конвееры(|) к примеру.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #29

121. Сообщение от Аноним (57), 19-Апр-20, 03:20   +1 +/
Хех. Я как-то давно на awk делал синхронизацию структур таблиц в mysql. На входе два --no-data дампа, на выходе alter table-ы. И, нет, information schema тогда не было, надо было парсить show create table.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #106

122. Сообщение от Crazy Alex (ok), 19-Апр-20, 04:37   –1 +/
Не факт. Я в своё время прочёл верблюжью книгу и пошёл писать на перле, чем и зарабатывал какое-то время. А авк с седом раза четыре освоить пытался, но забывалось за два дня. Перл, в силу того, что он один язык, выучить проще, чем по отдельности шелл, сед и авк, плюс он (как бы некоторым ни казалось странным) имеет очень человеческую логику и по нему легко отрастает интуиция.

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

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #110 Ответы: #136

124. Сообщение от Crazy Alex (ok), 19-Апр-20, 04:54   –1 +/
Некуда засунуть метанюинформацию, зато вдоволь возможностей побороться с кавычками, странными симаолами, кодировками и так далее.

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

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

125. Сообщение от ffirefox (?), 19-Апр-20, 06:21   +/
Из readme проекта:
author:                                  Aleksey Cheusov <vle@gmx.net>

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

126. Сообщение от ffirefox (?), 19-Апр-20, 06:45   +/
На Java как-то тяжеловато для однострочников...
А почему не модуль для runawk?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #119 Ответы: #129

127. Сообщение от ssh (ok), 19-Апр-20, 09:08   +/
> Это когда не хватает sed, но хватает awk?

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

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

128. Сообщение от myhand (ok), 19-Апр-20, 09:11   –1 +/
> После чего я идти вешать уже не стал.

Вот и все что надо знать о взаимодействии ALT с апстримами.

> PS: сборочная система dash тоже хрупкая -- на такое и я с
> lcc напоролся вслед за другими с другим: http://bugzilla.altlinux.org/31754

Вот негодяи!  Исправили Мишин баг еще в 2014-м годе:
https://git.kernel.org/pub/scm/utils/dash/dash.git/commit/sr...

А в ALT сообщить забыли...  И в домоуправление!

>> кстати, он нашёл отклонения в стандарте в dash :)

Его не Неуловимый Джо завут?

>> кстати, узнал, что конструция: for a; do :; done неправильная с точки зрения posix

По-моему, никакого набора стандартных тестов для соответствия POSIX в
части Shell & Utilities - нету.

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

129. Сообщение от vle (ok), 19-Апр-20, 11:14   –1 +/
По условию задачи на тот момент мне требовались регулярки именно от Java и быстро-быстро ими с консоли что-то искать. Если бы нашел Java Regexp на С, я бы просто слинковал BSD-ный grep c соответствующей либой. Но поскольку либо такую не нашел, пришлось писать grep на Java с нуля. Не на awk потому что POSIX regexps были не нужны.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #126

130. Сообщение от Аноним (130), 19-Апр-20, 15:22   +/
> Это microsoft-овский csv

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #96 Ответы: #138

131. Сообщение от Аноним (130), 19-Апр-20, 17:21   +/
Увы, нет, по вашей же ссылке написано:

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 не распарсить.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #100 Ответы: #137

132. Сообщение от Аноним (130), 19-Апр-20, 17:26   +/
> Но важного то почти и не осталось.

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

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

133. Сообщение от Аноним (130), 19-Апр-20, 17:28   +/
> Там различий меньше чем даже между python 3.0 и 3.8

Опять враньё.

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

135. Сообщение от anonymous (??), 19-Апр-20, 20:34   +1 +/
Чтоб весь софт так обновлялся. А то обычно накрутят ненужных фич и насыпят новых багов вместо того, чтобы старые исправлять.
Ответить | Правка | Наверх | Cообщить модератору

136. Сообщение от Аноним (136), 19-Апр-20, 20:39   +/
> Сам язык крайне прост для освоения на начальном этапе (достаточно одну книжку прочесть),

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

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

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

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

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

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

137. Сообщение от Аноним (57), 19-Апр-20, 23:36   +/
Очевидно, что при построчном чтении распарсить случай с CRLF внутри кавычек не получится.

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

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

138. Сообщение от Аноним (57), 19-Апр-20, 23:40   –1 +/
Этот rfc написан в 2005 году и лишь фиксирует статус кво.
CSV в виде "строка с разделителем" существовал, конечно, еще со времен перфокарт. А вот с кавычками и их удваиванием придумали в Microsoft, еще в самых ранних версиях Excel.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #130

139. Сообщение от Аноним (139), 20-Апр-20, 14:41   –1 +/
>Ada ископаемый? На нём Пентагон и НАТО кодят.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #104 Ответы: #144

140. Сообщение от bircoph (ok), 20-Апр-20, 18:27   +/
А я разве говорил, что не делается? Делается. Только сравните свой код с:
  awk '{ print $i }' gpl-3.0.txt
И подумайте. А ещё можно скорость работы сравнить на файлах побольше.

Внимание, вопрос: зачем использовать существенно более громоздкий и более медленный код?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #99 Ответы: #141, #143

141. Сообщение от VINRARUS (ok), 20-Апр-20, 18:45   +/
> А я разве говорил, что не делается? Делается. Только сравните свой код
> с:
>   awk '{ print $i }' gpl-3.0.txt
> И подумайте. А ещё можно скорость работы сравнить на файлах побольше.
> Внимание, вопрос: зачем использовать существенно более громоздкий и более медленный код?

В случае многократного запуска awk будет существенно тормозить работу shell програмы.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #140 Ответы: #142

142. Сообщение от bircoph (ok), 20-Апр-20, 21:23   –1 +/
1. Не так уж и сильно, если mawk использовать — он лёгкий.
2. На больших файлах это совершенно не важно.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #141

143. Сообщение от VINRARUS (ok), 20-Апр-20, 22:38   +/
> А я разве говорил, что не делается? Делается. Только сравните свой код
> с:
>   awk '{ print $i }' gpl-3.0.txt

К стати, а мой код то короче:
AWK $i gpl-3.0.txt
Могу название функцыи укоротить даже до 1 буквы :)

> 1. Не так уж и сильно, если mawk использовать — он лёгкий.
> 2. На больших файлах это совершенно не важно.

Ну во первых с помощью shell можна анализировать текст таким образом который просто не возможен на awk, а во вторых чем меньше файлы, и больше их количество, тем более рацыонально  вместо awk использовать аналогичную shell конструкцыю — банально из за экономии времени на рожание ядром нового запущеного процеса.

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

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

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

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

145. Сообщение от Аноним (145), 22-Апр-20, 14:06   +/
awk это няшка
Ответить | Правка | Наверх | Cообщить модератору


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

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




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

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