29

Я только начал изучать awk и немного запутался во всех этих версиях. Есть ли какая-либо "версия", которая встречается во всех Unix-подобных системах? Как, вы знаете, простой ви? Стандартный awk поддерживает опцию -F?

5 ответов5

31

awk - наиболее распространенный и будет встречаться на большинстве Unix-подобных систем, самая старая версия и уступающая новым.

mawk - быстрая реализация AWK, основа кода которой основана на интерпретаторе байт-кода.

nawk - во время разработки языка AWK авторы выпустили новую версию (отсюда n - n ew awk), чтобы избежать путаницы. Думайте об этом как о Python 3.0 AWK.

gawk - сокращенно от GNU awk. Единственная версия, в которой разработчики пытались добавить поддержку i18n. Позволял пользователям писать свои собственные разделяемые библиотеки C, чтобы расширять их с помощью своих собственных плагинов. Эта версия является стандартной реализацией для Linux, оригинальный AWK был написан для Unix v7.

Существуют и другие версии, такие как jawk (реализация java), bwk (реализация Брайана В. Кернигана) и так далее.

5

Вы можете просто использовать awk . Он определяется POSIX и поэтому должен существовать во всех POSIX-совместимых системах.

Параметр -F является обязательным .

3

Сначала быстрый ответ:

Вам не нужно беспокоиться: awk вашей системы - это просто символическая ссылка на mawk или gawk И, что более важно: все три версии, awk , mawk и gawk полностью совместимы. Существует (говорят, что) разница в скорости между awk/gawk и mawk которая, как говорят, быстрее.

Единственное исключение - nawk которому не хватает некоторой функциональности, но шансов найти его в дикой природе довольно мало.

0

awk будет присутствовать практически на каждой системе * NIX, но точная спецификация того, что он поддерживает, немного сместится, так как вполне возможно, что он просто будет ссылаться на другую версию, подобную тому, как /bin/sh часто связан с определенной оболочкой часто bash или один из его производных. (Для справки, я также знаю много машин, на которых vi связана с vim .)

0

Страница Wikipedia AWK - хороший стартовый справочник для начинающих понимать AWK.
Опция Разделитель полей ' -F ' поддерживается во всех вариантах AWK - afaik.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .