コマンド(awk、sedなど)をSolarisの最新バージョンに更新できますか?

コマンド(awk、sedなど)をSolarisの最新バージョンに更新できますか?
 bash-3.00# awk '{print NR}' f1.txt
 1
 2
 3
 4

しかし、FNRは何も印刷しません。

awk '{print FNR}' f1.txt

上記の行は出力を提供しません。 Sun OSのawkにはFNR変数がないようです。それでは、これを標準化するためにできることはありますか?また、最新のすべてのコマンドのライブラリを入手し、sed、sortなどの現在のコマンドをインストール/更新できます。

SunOS 不明 5.10 Generic_142910-17 i86pc i386 i86pc

答え1

awkただ1つ以上のバージョンではありません。それぞれに複数のバージョンを持つawkの実装がたくさんあります。すべてのUnicesには、Unixに付属している内部で管理されている独自のツールとソフトウェアのセットがあり、これらのツールの使用は通常、正確な実装バージョンによって異なります。

GNU awkとの交換を開始した場合は、/usr/bin/awk以下からダウンロードできます。http://gnu.orgすると、問題が発生します。

一部の Unices は、一部の標準ユーティリティの代替またはフリーソフトウェアバージョンをパッケージとして提供しています。通常、別の場所(/opt/gnuGNUツールの場合など)または別の名前(GNU awkの場合)にインストールしてgawkこれを行います。そうでない場合は、ソースコードでダウンロードしてビルドし、別の場所または別の名前で手動でインストールできます。

ただし、Solarisにはいくつかのユーティリティの非常に古い非標準バージョンが含まれており、/usr/bin最新/標準バージョンは他の場所に保存されていることが知られています。

これはawkの場合です。/usr/bin/awkSolarisのawkは1979年のオリジナルawkに基づいています。 awkは1988年頃に書き直され、awkと呼ばれましたnawk。すべての最新のawk実装はこれに基づいています(POSIX仕様がベースであるnawkため)。awk

Solarisでシステムを更新して$PATH標準/POSIX環境(通常/usr/xpg4/binおよび/または /usr/xpg6/bin最初に入れる$PATH)、awk標準となります。または代わりにnawk電話することもできますawk

これはと同じです。またはをsh使用できます。/usr/xpg4/bin/shksh

標準sh(例:いいえ /bin/shSolaris では) 以下も使用できます。

 command -p awk

ぜひ電話してください持ち運べる以前のものの代わりに。

関連情報