Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 比较文件的连续列并确定是否有大于80的列_Bash_Shell_Awk - Fatal编程技术网

Bash 比较文件的连续列并确定是否有大于80的列

Bash 比较文件的连续列并确定是否有大于80的列,bash,shell,awk,Bash,Shell,Awk,我有一个SQL查询输出文件,如下所示: DG_DATA 9 DG_FRA 0 OCR002 3 OCR 3 我使用以下方法来提取带有数字的列 awk '{for(x=1;x<=NF;++x)if(x % 2 == 0)printf $x "\t"}' 但我需要一些帮助来比较所有整数,如果任何整数大于80,则打印“临界值”。这是一种方法: { n=split($0, arr, " "); i=2; while(i<=n){ str=str a

我有一个SQL查询输出文件,如下所示:

DG_DATA 9 DG_FRA 0 OCR002 3 OCR 3
我使用以下方法来提取带有数字的列

awk '{for(x=1;x<=NF;++x)if(x % 2 == 0)printf $x "\t"}'

但我需要一些帮助来比较所有整数,如果任何整数大于80,则打印“临界值”。

这是一种方法:

{
    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";
    }
}
{
n=拆分($0,arr,“”);
i=2;
而(i 80){
f=1
};
i+=2;
}
打印str;
如果(f){
打印“关键”;
}
}

示例

所有值正常:

[llamazing@pc ~]$ 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
[llamazing@pc~]$echo“DG_数据9 DG_FRA 0 OCR002 3 OCR 3”| awk'{n=split($0,a,”);i=2;而(i 80){f=1};i+=2;}print str;如果(f){print“CRITICAL”;}}'
9       0       3       3
带有关键信息:

[llamazing@pc ~]$ 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
[llamazing@pc~]$echo“DG_数据9 DG_FRA 81 OCR002 3 OCR 3”| awk'{n=split($0,a,”);i=2;而(i 80){f=1};i+=2;}print str;如果(f){print“CRITICAL”;}}'
9       81      3       3
批评的

这是一种方法:

{
    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";
    }
}
{
n=拆分($0,arr,“”);
i=2;
而(i 80){
f=1
};
i+=2;
}
打印str;
如果(f){
打印“关键”;
}
}

示例

所有值正常:

[llamazing@pc ~]$ 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
[llamazing@pc~]$echo“DG_数据9 DG_FRA 0 OCR002 3 OCR 3”| awk'{n=split($0,a,”);i=2;而(i 80){f=1};i+=2;}print str;如果(f){print“CRITICAL”;}}'
9       0       3       3
带有关键信息:

[llamazing@pc ~]$ 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
[llamazing@pc~]$echo“DG_数据9 DG_FRA 81 OCR002 3 OCR 3”| awk'{n=split($0,a,”);i=2;而(i 80){f=1};i+=2;}print str;如果(f){print“CRITICAL”;}}'
9       81      3       3
批评的

请注意,显示的数字中没有一个是该术语正常意义下的整数。还有,为什么不干脆跳过你感兴趣的领域呢
for(x=2;x)您可以控制生成输出的SQL吗?请注意,显示的数字中没有一个是术语正常意义下的整数。另外,为什么不简单地跳过您感兴趣的字段呢?
for(x=2;x)您可以控制生成输出的SQL吗?