私はawkを学び始めたばかりで、周りのこれらすべてのバージョンについて少し混乱しています。すべてのUnixライクシステムで見られる「バージョン」はありますか?たとえば、ご存知のとおり、vi 標準のawkは-Fオプションをサポートしていますか?
私は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の実装)などのような他のバージョンがあります。
file /etc/alternatives/awk
が返されるsymbolic link to /usr/bin/mawk
あなただけを使用することができますawk
。POSIXで定義されているため、すべてのPOSIX準拠システムに存在する必要があります。
-F
パラメータがされていることにより、義務付けにも。
gensub()
、とテストawk
> - gawk
...、そしてあなたに行くにしている良いと思う
gawk --posix
すると、POSIX標準に従ってgawkを動作させることができます。また、スクリプトが標準に従っていることを確認します。awk --posix '' 2>/dev/null
Ubuntuで、awkとしてgawk、mawk、original-awkが使用されている場合でも使用できますが、posix-optionはgawkによってのみ認識されます。--posixはoriginal-awkの最後のオプションでなければなりません。awk -W posix ''
gawkとmawkで使用できます。
mawk --posix ''
mawk 1.3.3を使用すると失敗しますが、mawk 1.3.4を使用するとエラーメッセージが表示されて成功します
awk
ちょうど約すべての* NIXベースのシステムが、それは、それは単にどのように似て異なるバージョンにシンボリックリンクされます完全に可能だとして、それがサポートは若干シフトするものの正確な仕様になり/bin/sh
、多くの場合、多くの場合、特定のシェルにリンクされているbash
か、1のその派生物。(記録のために、vi
シンボリックリンクさvim
れているマシンもたくさん知っています。)
ウィキペディアAWKページは AWKを理解し始めのために良いスターター参照です。フィールド区切りオプションは、「私の知る限り- 」AWKのすべての亜種でサポートされています。 -F
/usr/bin/awk
nawk、またはgawk、またはBusyBox awk(動作はgawkと同様)を実行します。