awkの比較オペレータを使用する方法
awkの比較演算子は、文字列または数値を比較するために使用されます。次のタイプが含まれます。
きごうさよう
>より大きい
>=以上
==等しい
!=等しくない
some_value~/pattern/some_valueマッチングモードpatternはtrueを返します
some_value !~ / pattern/some_value不整合モードpatternはtrueを返し、awkにおける様々な比較演算子を例によって熟知する。
例としてfoodというファイルがありますlist.txtのファイルには、異なる食べ物の購入リストが含まれています。食べ物の数が30以下のものの行の後ろに追加したいです(**)
File – food_list.txt
No Item_Name Quantity Price
1 Mangoes 45 $3.45
2 Apples 25 $2.45
3 Pineapples 5 $4.45
4 Tomatoes 25 $3.45
5 Onions 15 $1.45
6 Bananas 30 $3.45
Awkで比較演算子を使用する一般的な構文は次のとおりです。
#式{アクション;}
先ほどの目的を達成するために、次のコマンドを実行します。
<= 30 { printf "%s/t%s/n", $0,"**" ; } $3 >30 { print $0 ;}' food_list.txtNo Item_Name` Quantity Price
1 Mangoes 45 $3.45
2 Apples 25 $2.45 **
3 Pineapples 5 $4.45 **
4 Tomatoes 25 $3.45 **
5 Onions 15 $1.45 **
6 Bananas 30 $3.45 **
先ほどの例では、次の2つの重要なことが起こりました。
最初の式 <= 30 { printf “%s/t%s/n”, $0,”**” ; } 打印出数量小于等于30的行,并且在后面增加 (**) 。物品的数量是通过 $3 这个域变量获得的。 2番目の式もう1つ例を挙げます。
<= 20 { printf "%s/t%s/n", $0,"TRUE" ; } $3 >20 { print $0 ;} ' food_list.txtNo Item_Name Quantity Price
1 Mangoes 45 $3.45
2 Apples 25 $2.45
3 Pineapples 5 $4.45 TRUE
4 Tomatoes 25 $3.45
5 Onions 15 $1.45 TRUE
6 Bananas 30 $3.45
この例では、行の末尾に(TRUE)を追加することによって、20以下の数の行をマークしたい。
まとめこれはawkの比較演算子の紹介的なガイドラインです。そのため、他のオプションを試して、より多くの使用方法を見つける必要があります。