awkをマスターしようとしています。
入力があるとしましょう。
this header
fred blah 1 blank
fred blah 1 blank
huh blah 2 blank
fred blah 3 blank
fred blah 3 blank
次のawkスクリプトを使用した後、
#!/usr/bin/awk -f
{
if ( NF <=2 ) {
print $0
};
if ( NF>=3 && $3=1)
{
print $0
}
}
私は次のような結果が得られると思います。
this header
fred blah 1 blank
fred blah 1 blank
しかし、私は次のような結果を得ます。
this header
fred blah 1 blank
fred blah 1 blank
huh blah 1 blank
fred blah 1 blank
fred blah 1 blank
そのうち3ドルは条件に変わりました。
なぜこれが起こるのですか?
希望の出力を得るには、awkスクリプトをどのように調整する必要がありますか?
ベストアンサー1
誤解しないで
a = b
そして
a == b
if ( )
テストしてもa = b
b値はaに設定されます。 (aがある場合でも$3
)。
次のように書く必要があります。
$3 == 1