awk と gawk の違い

目次

スポンサードリンク

awk とは

awk は開発者の頭文字Aho、Weinberger、Kernighanから取られたもので、テキスト処理に特化したスクリプト言語です。多くのUNIX、Linux環境にはデフォルトでインストールされており、特定の文字列を含む行の抽出、ファイルの行数カウント、列結合、数値データの集計など、様々な用途に活用されています。

awkには、環境により gawk、mawk など種類がありますが、RedHat系のLinuxサーバーでは、awk と gawk は同じコマンドです。 手元のCentOSでは以下の結果になりました。

[root@hostname ~]# cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core)
[root@hostname ~]#
[root@hostname ~]# which awk
/usr/bin/awk
[root@hostname ~]#
[root@hostname ~]# ll /usr/bin/awk
lrwxrwxrwx. 1 root root 4 May 11  2018 /usr/bin/awk -> gawk

whichコマンドでawkコマンドの場所を調べると /usr/bin/awk でした。lsコマンドで /usr/bin/awk を調べると、gawkのシンボリックリンクでした。

gawk の解説

manコマンドでawkを調べると(中身はgawkですが)、以下のように解説されていました。

DESCRIPTION
Gawk is the GNU Project’s implementation of the AWK programming language. It conforms to the definition of the language in the POSIX 1003.1 Standard. This version in turn is based on the description in The AWK Programming Language, by Aho, Kernighan, and Weinberger. Gawk provides the additional features found in the current version of UNIX awk and a number of GNU-specific extensions.

以下翻訳、、

gawkは、AWKプログラミング言語のGNUプロジェクトによる実装です。POSIX 1003.1 規格で定義されているAWK言語に準拠しています。さらに、このgawkは、Aho、Kernighan、Weinbergerによる「The AWK Programming Language」で記述されているAWK言語の定義に基づいています。gawkは、現行のUNIX awkにある機能に加え、GNU独自の拡張機能も提供します。



プログラミング言語AWK
AWK 言語作者による解説本。名著。

Linuxコマンドについて学べるおすすめ書籍
Linuxコマンドの知識は、プログラマにとって長く役立つ知識です。 私はこちらの書籍で一通り知識を抑えました。基本から丁寧に解説されています。