ウェブサイト検索

Awk プログラミング言語を使用してスクリプトを記述する方法 - パート 13


Awk シリーズの始まりからパート 12 まで、私たちはコマンド ラインとシェル スクリプトでそれぞれ小さな Awk コマンドとプログラムを作成してきました。

ただし、Awk も Shell と同様にインタープリター言語であるため、このシリーズの最初から説明してきたすべての内容を使用して、Awk 実行可能スクリプトを作成できるようになります。

シェル スクリプトの記述方法と同様に、Awk スクリプトは次の行で始まります。

#! /path/to/awk/utility -f 

たとえば、私のシステムでは、Awk ユーティリティは /usr/bin/awk にあります。したがって、次のように Awk スクリプトを開始します。

#! /usr/bin/awk -f 

上の行を説明すると、次のようになります。

  1. #!Shebang と呼ばれ、スクリプト内の命令のインタープリタを指定します。
  2. /usr/bin/awk – インタープリタです
  3. -f – インタープリタ オプション。プログラム ファイルの読み取りに使用されます。

そうは言っても、ここで Awk 実行可能スクリプトの例をいくつか見てみましょう。以下の単純なスクリプトから始めることができます。次のように、お気に入りのエディタを使用して新しいファイルを開きます。

vi script.awk

そして、以下のコードをファイルに貼り付けます。

#!/usr/bin/awk -f 
BEGIN { printf "%s\n","Writing my first Awk executable script!" }

ファイルを保存して終了し、以下のコマンドを発行してスクリプトを実行可能にします。

chmod +x script.awk

その後、それを実行します。

./script.awk
サンプル出力
Writing my first Awk executable script!

批判的なプログラマーは「コメントはどこにあるの?」と尋ねているはずです。はい、Awk スクリプトにコメントを含めることもできます。コード内にコメントを記述することは、常に良いプログラミング方法です。

これは、コードを調べている他のプログラマーが、スクリプトまたはプログラム ファイルの各セクションで何を達成しようとしているのかを理解するのに役立ちます。

したがって、次のように上記のスクリプトにコメントを含めることができます。

#!/usr/bin/awk -f 

#This is how to write a comment in Awk
#using the BEGIN special pattern to print a sentence 

BEGIN { printf "%s\n","Writing my first Awk executable script!" }

次に、ファイルから入力を読み取る例を見ていきます。アカウント ファイル /etc/passwdaaronkilik という名前のシステム ユーザーを検索し、ユーザー名、ユーザー ID、およびユーザーを出力します。 性同一性障害は次のとおりです。

以下は、second.awk というスクリプトの内容です。

#! /usr/bin/awk -f 

#use BEGIN sepecial character to set FS built-in variable
BEGIN { FS=":" }

#search for username: aaronkilik and print account details 
/aaronkilik/ { print "Username :",$1,"User ID :",$3,"User GID :",$4 }

ファイルを保存して終了し、スクリプトを実行可能にして以下のように実行します。

chmod +x second.awk
./second.awk /etc/passwd
サンプル出力
Username : aaronkilik User ID : 1000 User GID : 1000

以下の最後の例では、do while ステートメントを使用して0 ~ 10 の数値を出力します。

以下は、do.awk というスクリプトの内容です。

#! /usr/bin/awk -f 

#printing from 0-10 using a do while statement 
#do while statement 
BEGIN {
#initialize a counter
x=0

do {
    print x;
    x+=1;
}
while(x<=10)
}

ファイルを保存した後、前と同じようにスクリプトを実行可能にします。その後、それを実行します。

chmod +x do.awk
./do.awk
サンプル出力
0
1
2
3
4
5
6
7
8
9
10

まとめ

この興味深い Awk シリーズも終わりに来ました。Awk プログラミング言語の入門として、全 13 部から多くのことを学んでいただければ幸いです。

最初に述べたように、Awk は完全なテキスト処理言語です。そのため、環境変数、配列、関数 (組み込みおよびユーザー定義) など、Awk プログラミング言語の他の側面をさらに学ぶことができます。

Awk プログラミングには、学習してマスターする必要がある追加部分がまだあります。そのため、以下に、Awk プログラミング スキルを拡張するために使用できる重要なオンライン リソースへのリンクをいくつか提供しました。これらが必ずしも必要なもののすべてではありません。役に立つ Awk プログラミングの本を探してください。

参考リンク: GNU Awk ユーザーガイドと AWK 言語プログラミング

共有したい考えや質問がある場合は、以下のコメント フォームを使用してください。よりエキサイティングなシリーズをご覧いただくために、常にTecmint に接続してください。