這是一個辦法做到這一點:
{
n=split($0, arr, " ");
i=2;
while(i<=n){
str=str arr[i]"\t";
if(arr[i] > 80){
f=1
};
i+=2;
}
print str;
if(f){
print "CRITICAL";
}
}
例
確定所有的值:
[[email protected] ~]$ echo "DG_DATA 9 DG_FRA 0 OCR002 3 OCR 3" | awk '{n=split($0, a, " ");i=2;while(i<=n){str=str a[i]"\t";if(a[i] > 80){f=1};i+=2;}print str;if(f){print "CRITICAL";}}'
9 0 3 3
關鍵信息:
[[email protected] ~]$ echo "DG_DATA 9 DG_FRA 81 OCR002 3 OCR 3" | awk '{n=split($0, a, " ");i=2;while(i<=n){str=str a[i]"\t";if(a[i] > 80){f=1};i+=2;}print str;if(f){print "CRITICAL";}}'
9 81 3 3
CRITICAL
請注意,所顯示的數字都不是該術語正常含義下的整數。另外,爲什麼不簡單地跨過你感興趣的領域? 'for(x = 2; x <= NF; x + = 2)printf $ x「\ t」'?不要忘記在最後添加一個換行符:'print「」'。 –
您是否對生成輸出的SQL有任何控制權? – chepner