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


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

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

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

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

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

#! /usr/bin/awk -f 

上記の行を説明する:

  1. #! – referred to as Shebang, which specifies an interpreter for the instructions in a script
  2. /usr/bin/awk – is the interpreter
  3. -f – interpreter option, used to read a program file

そうは言っても、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/passwdでaaronkilikという名前のシステムユーザーを検索し、ユーザー名、ユーザーID、およびユーザーGIDを次のように出力します。

以下は、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プログラミングの本を探しましょう。

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

共有したい考えや質問については、以下のコメントフォームを使用してください。よりエキサイティングなシリーズのために、常にTecmintとの接続を維持することを忘れないでください。