我正在處理包含兩列的巨大CSV文件(filtest.csv
)。從第1列開始,我想讀取當前行並將其與前一行的值進行比較。如果是greater
或equal
,繼續比較,如果當前單元格的值是smaller
比前一行 - 那麼我想跳到第二列並採取當前行(第二列)中的值。接下來,我想將列1中的larger value
與第2列的同一單元格中的值和第1列中的較小值相比較。讓我通過此示例進行說明。例如在下表中:我們將根據我的要求從第1列開始的較小值是327(因爲327小於先前的值340) - 然後我們取500(這是第2列的相應單元格值) 。 最後我們將340除以500得到值0.68。將值打印到控制檯後,我的bash腳本應該立即退出。awk腳本 - 在csv文件中循環兩列的行值
338,800
338,550
339,670
340,600
327,500
301,430
299,350
284,339
284,338
283,335
283,330
283,310
282,310
282,300
282,300
283,290
在下面的腳本,我想它做同一行兩列的除法運算,它工作正常
awk -F, '$1<p && $2!=0{
val=$1/$2
if(val>=0.85 && val<=0.9)
{
print "value is:" $1/p
print "A"
}
else if(val==0.8)
{
print "B"
}
else if(val>=0.5 && val <=0.7)
{
print "C"
}
else if(val==0.5)
{
print "E"
}
else
{
print "D"
}
exit
}
{
p=$1
}' filetest.csv
但怎能通過值兩列循環並像前面提到的那樣在兩列的兩行中執行控制語句?
替換' val = $ 1/$ 2''val = p/$ 2' – RomanPerekhrest