Могу ли я обновить свои команды (например, awk, sed) до последней версии в Solaris?

bash-3.00# awk '{print NR}' f1.txt 1 2 3 4 

но FNR ничего не печатает.

 awk '{print FNR}' f1.txt 

приведенная выше строка не дает мне никакого вывода, кажется, что awk, который у меня есть на моем солнце os, не имеет переменной FNR. так что я могу что-то сделать, чтобы стандартизировать его. также, могу ли я получить библиотеку всех последних команд и установить / обновить текущие команды, такие как sed, sort и т. д.

SunOS неизвестен 5.10 Generic_142910-17 i86pc i386 i86pc

One Solution collect form web for “Могу ли я обновить свои команды (например, awk, sed) до последней версии в Solaris?”

Существует не только один awk и несколько его выпусков. Существует множество реализаций awk, каждая из которых имеет несколько версий. У всех Unices есть собственный набор инструментов, который они поддерживают внутри компании, и программное обеспечение, поставляемое с одним Unix, и которое использует эти инструменты, как правило, полагается на то, что это точная версия этой самой реализации.

Если вы начнете заменять /usr/bin/awk на GNU awk, как можно загрузить с http://gnu.org , тогда у вас возникнут проблемы.

Некоторые Unices предоставляют альтернативные версии или бесплатные версии некоторых стандартных утилит. Как правило, они делают это, устанавливая их в другом месте ( /opt/gnu например, для инструментов GNU) или под другим именем ( gawk для GNU awk). Если нет, вы можете загрузить их как источник и создать их, а также самостоятельно установить их в другом месте или под другим именем.

Сказав это, Solaris, как известно, имеет очень старые и нестандартные версии некоторых утилит в /usr/bin и сохраняет современные / стандартные версии в другом месте.

Это случай awk. /usr/bin/awk на Solaris основана на оригинальном awk с 1979. awk был переписан около 1988 года и называется nawk . Все современные реализации awk основаны на этом nawk (поскольку это основано на спецификации awk POSIX).

В Solaris, если вы обновите свой $PATH чтобы поставить себя в стандартную / POSIX-среду (которая обычно включает в себя установку /usr/xpg4/bin и / или /usr/xpg6/bin в начале $PATH ), тогда awk будет стандартный. Кроме того, вы можете вызвать nawk вместо awk .

Это то же самое для sh , вы можете использовать /usr/xpg4/bin/sh или ksh .

В стандартном sh (то есть, not /bin/sh на Solaris) вы также можете использовать

  command -p awk 

Не забудьте назвать портативный awk вместо старого.

  • Веб-сервер в зонах Solaris 10 +. Как это сделать правильно?
  • / usr / ucb / cc: языковой пакет дополнительного программного обеспечения не установлен
  • Что означает «Недопустимый аргумент» в Solaris?
  • Профиль solaris 11 zone sysconfig для ipmp
  • Завершение SSH, вызванное скриптом (обработка SIGPIPE?)
  • Чтение дерева устройств для ide-дисков
  • Подавить новую строку, когда Awk'ing массив
  • bc ведет себя по-разному на Solaris и Linux
  • Где я могу использовать «beadm»?
  • Как использовать «фьюзер» для получения списка процессов для вложенной папки при использовании с родительской папкой в ​​качестве аргумента?
  • Как перенаправить вывод из команды find (использующей grep) в файл журнала?
  • Linux и Unix - лучшая ОС в мире.