price.txt
文件具有兩列:(名稱和值)輸出在不同的列每個循環的結果
Mary 134
Lucy 56
Jack 88
range.txt
文件有三列:(水果和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
其實,我想我的結果是這樣的:(每個名字都有一個列)
1 x 1
1 x 1
x x 1
x x x
因爲我需要使用paste
添加到輸出文件和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」))來更多地控制輸出。 – 2016-09-16 15:34:32