тайна класса символов awk

/etc/X11/Xsession.d/ ... или вроде того каталога, в зависимости от Вашего Linux (?). Я записал немного на нем здесь.

Понятие - то, что после входа в систему, менеджер по оформлению запускает "Xsession" и получает (!) все в том каталоге в алфавитном порядке. Можно просто добавить сценарий, который изменяет ПУТЬ. Xsession будет untimately быть Вашим DE, и обычно все процессы являются детьми что Xsession, поэтому наследовав среду ПУТИ.

5
07.08.2014, 22:40
3 ответа

Это ошибка в mawk 1.3.3 , о которой сообщалось здесь . Вы можете перейти на mawk 1.3.4 или использовать патч для исправления ошибки.

$ mawk -W version
mawk 1.3.4 20130219
Copyright 2013, Thomas E. Dickey
Copyright 1996, Michael D. Brennan

internal regex
compiled limits:
max NF             32767
sprintf buffer      2040

$ echo "host.company.com has address 192.168.22.82" | mawk '/^[[:alnum:].-]+ has address/ { print $4 }'
192.168.22.82

mawk использует расширенные регулярные выражения, как и egrep , поэтому он должен поддерживать классы символов POSIX.

8
27.01.2020, 20:33

Документация, на которую вы ссылаетесь, относится к версии GNU Awk, но у вас есть версия mawk (как показано вашей первой командой), которая является вариантом awk, который, кажется, не поддерживает символьные классы POSIX, такие как [: alpha:] или [:alnum:].

Правка: Как упоминалось в в Gnouc, mawk поддерживает символьные классы POSIX, начиная с версии 1.3.4, так что обновление может исправить вашу проблему.

.
5
27.01.2020, 20:33

Что касается POSIX-классов gawk и mawk, я не могу говорить за другие классы, но, как ни странно, только mawk 1.3.4, похоже, прав, когда дело доходит до класса-

[[:graph:]]

Я не тестировал более устаревшие/малоизвестные варианты, но бета-версия gawk 5.1 и mawk2 -, которые согласуются друг с другом в этом конкретном классе, не содержат довольно много печатных символов корейских символов хангыль и китайских символов хань.. делать что-то вроде

/[[:graph:]]|[\352\353\354]/

в основном делает свое дело, но все еще есть несколько остатков в \355, которые не имеют какого-либо различимого шаблона, позволяющего написать чистое регулярное выражение для учета пробела. Я могу только молиться, чтобы специалисты по сопровождению кода gnu нашли для этого время, но также признавая реальность того, что это, вероятно, крайне низко в чьем-либо списке приоритетов.

0
26.02.2021, 19:02

Теги

Похожие вопросы