私はawkの学習を始めたばかりで、周りのすべてのバージョンについて少し混乱しています。すべてのUnixライクなシステムで見られる「バージョン」はありますか?分かりますよ、分かりやすいvi?標準のawkは-Fオプションをサポートしていますか?
awk-最も一般的で、ほとんどのUnixライクなシステムで見つかります。最も古いバージョンで、新しいバージョンよりも劣ります。
mawk-コードベースである高速AWK実装は、バイトコードインタープリターに基づいています。
nawk-AWK言語の開発中に、著者は混乱を避けるために新しいバージョン(したがってn-n ew awk)をリリースしました。 AWKのPython 3.0のように考えてください。
gawk-GNU awkの省略形。開発者がi18nサポートを追加しようとした唯一のバージョン。ユーザーが独自のC共有ライブラリを記述して、独自の「プラグイン」このバージョンはLinuxの標準実装であり、元のAWKはUnix v7用に作成されました。
Jawk(Java実装)、bwk(Brian W. Kernighanの実装)などの他のバージョンもあります。
awk
だけを使用できます。これはPOSIXによって定義されているため、すべてのPOSIX準拠システムに存在する必要があります。
-F
パラメータは 必須 でもあります。
まず簡単な答え:
気にする必要はありません。システムのawk
はmawk
またはgawk
へのシンボリックリンクであり、さらに重要なことに、3つのバージョンすべてawk
、 mawk
とgawk
は完全に互換性があります。 awk
/gawk
とmawk
の速度は(そうであると)高速であるので、速度に違いがある(と言われています)。
唯一の例外はnawk
で、これにはいくつかの機能がありませんが、これを実際に見つけられる可能性はかなり少ないです。
awk
は、ほぼすべての* NIXベースのシステムに存在しますが、サポートするものの正確な詳細は、どのように/bin/sh
は特定のシェル、多くの場合bash
またはその派生物の1つにリンクされています。 (記録として、vi
がvim
にもシンボリックリンクされている多くのマシンも知っています。)
Wikipedia AWKページ は、AWKを理解し始めるための初心者向けリファレンスです。
フィールド区切り文字 オプション '-F
'は、AWKのすべてのバリアントでサポートされています-afaik。