我想计算.txt文件中特定列的中值,输出该值,并说明该输出值是否正常。我可以做初始步骤并输出中值,但是不能说输出值是否在可接受的范围内。
我收到语法错误消息,其中包含以下代码:
$ sort -nk9 filename | awk '{a[i++]=$9;} END {x=int((i+1)/2); y=((a[x-1] + a[x])/2); z=(a[x-1]); if ((y >= 0.5 && y <= 2) || (z >= 0.5 && z <=2)); {if (x < (i+1)/2) print "Median OR =", y "ALL OK"; else print "Median OR =", z "ALL OK"}; else print "ERROR - OR outside range 0.5 - 2.0"}'
请帮忙。
答案 0 :(得分:0)
if
中的else
awk
结构存在多处错误
使用一行,使其难以阅读,理解。这应该没问题:
sort -nk9 t | awk '
{a[i++]=$9;}
END {
x=int((i+1)/2)
y=((a[x-1] + a[x])/2)
z=(a[x-1])
if ((y >= 0.5 && y <= 2) || (z >= 0.5 && z <=2))
{if (x < (i+1)/2) print "Median OR =", y "ALL OK"
else print "Median OR =", z "ALL OK"}
else print "ERROR - OR outside range 0.5 - 2.0"}'