スクリプトの実行順序 (その 3) 条件式

算術比較演算子

式において, 数値としての大小や等, 不等を表す記号を算術比較演算子と呼ぶ:

<
<=
>
>=
!=
==

scpt12_1.awk

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
#!/usr/local/bin/gawk -f
# scpt12_1.awk

BEGIN{
    str = "programming"
    if( length(str) != 10 )
	print str " の長さは 10 バイトではない"
    else
	print str " の長さは 10 バイトである"
}

scpt12_1.awk の実行結果は:

[cactus:~/code_awk/tuts]% ./scpt12_1.awk
programming の長さは 10 バイトではない

data12_2.txt

A君 60
B君 70
C君 80
E君 30
F君 20
G君 100
H君 33
I君 61
J君 59
K君 67

scpt12_2.awk

#!/usr/local/bin/gawk -f
# scpt12_2.awk

{
    if($2 >= 60)
	print $0 # print と書くだけでもよい
}

scpt12_3.awk

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
#!/usr/local/bin/gawk -f
# scpt12_1.awk

BEGIN{
    str = "programming"
    if( length(str) != 10 )
	print str " の長さは 10 バイトではない"
    else
	print str " の長さは 10 バイトである"
}

scpt12_2.awk と scpt12_3.awk の実行結果は:

[cactus:~/code_awk/tuts]% ./scpt12_2.awk data12_2.txt
A君 60
B君 70
C君 80
G君 100
I君 61
K君 67
[cactus:~/code_awk/tuts]% ./scpt12_3.awk data12_2.txt
A君 60
B君 70
C君 80
G君 100
I君 61
K君 67

文字列適合演算子

scpt7.txt

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
apple egg
hat cat
money sky
absent boy
food note
way arrow
foot cap
value dog
home wall
tree sad

scpt7_1.awk

#!/usr/local/bin/gawk -f
# scpt7_1.awk

$2 ~ /^c/{
    print FNR ":" $2 # 特殊変数 FNR は現在のファイルの入力レコード
}

scpt12_4.awk

#!/usr/local/bin/gawk -f
# scpt12_4.awk

{
    if($2 ~ /^c/)
	print FNR ":" $2
}

scpt7_1.awk と scpt12_4.awk の実行結果は:

[cactus:~/code_awk/tuts]% ./scpt7_1.awk scpt7.txt
2:cat
7:cap
[cactus:~/code_awk/tuts]% ./scpt12_4.awk scpt7.txt
2:cat
7:cap