我正在处理包含两列的巨大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