price.txt
ファイルには2つの列があります(名前と値)出力異なる列の各ループの結果
Mary 134
Lucy 56
Jack 88
range.txt
ファイルが3つの列があります(果実及びMIN_VALUEとMAX_VALUE)
apple 57 136
banana 62 258
orange 88 99
blueberry 98 121
を私の目的はprice.txt
ファイルの値がrange.txt
のmin_valueとmax_valueの間にあるかどうかをテストすることです。はいの場合は1
を、そうでない場合は"x"
を出力します。
私が試した:
awk 'FNR == NR { name=$1; price[name]=$2; next} {
for (name in price) {
if ($2<=price[name] && $3>=price[name]) {print 1} else {print "x"}
}
}' price.txt range.txt
をしかし、私の結果は同じように、すべての列にあり、次のとおりです。
1
1
x
x
x
x
x
x
1
1
1
x
は実際に、私は私の結果は以下のようになりたい。(それぞれの名前は、一つの列を持っています)私は、出力ファイルを追加するためにpaste
を使用する必要があるため
1 x 1
1 x 1
x x 1
x x x
とrange.txt
ファイルをまとめてください。最終結果は次のようになります。
apple 57 136 1 x 1
banana 62 258 1 x 1
orange 88 99 x x 1
blueberry 98 121 x x x
したがって、どのようにして各ループの結果を異なる列に得ることができますか?とにかく私の現在のコードに基づいてpaste
せずに最終結果を出力するには?ありがとうございました。
printステートメントは、引数にORS(デフォルトでは改行)を追加します。 printf(たとえば、printf( "1"))を使用して出力をさらに制御できます。 –