Printing AWK打印一行作为输出文件中的第一条记录

Printing AWK打印一行作为输出文件中的第一条记录,printing,awk,Printing,Awk,问题是: 我有一个AWK脚本,计划每天通过crontab条目运行。此特定脚本将错误输出到错误日志。我有一个变量,它在每次遇到错误时递增,并且在脚本末尾有以下控制语句: if (blErrorCounter) { print "Log contains " blErrorCounter " errors!" } else { print "Log contains no errors!" } 该脚本包含许多其他错误处理条件,这些条件将数据输出到日志文件,但我希望能够将上述内容打印

问题是:

我有一个AWK脚本,计划每天通过crontab条目运行。此特定脚本将错误输出到错误日志。我有一个变量,它在每次遇到错误时递增,并且在脚本末尾有以下控制语句:

if (blErrorCounter) {
    print "Log contains " blErrorCounter " errors!"
} else {
    print "Log contains no errors!"
}
该脚本包含许多其他错误处理条件,这些条件将数据输出到日志文件,但我希望能够将上述内容打印为文件中的第一条记录

这可能很简单,因为我是AWK的noob,但任何帮助/指示都会得到很大的帮助


Shaw

您需要保存错误消息以在结尾部分打印,例如:

/error/ { errors[++blErrorCounter] = "Got error at line " FNR }
END {
    if (blErrorCounter) {
        print "Log contains", blErrorCounter, "errors!"
        for (ec=1; ec <= blErrorCounter; ec++) {
            print errors[ec]
        }
    } else {
        print "Log contains no errors!"
    }
}
/error/{errors[++blErrorCounter]=“在第“FNR”行出现错误”
结束{
如果(blErrorCounter){
打印“日志包含”,blErrorCounter,“错误!”

对于(ec=1;ec您需要保存错误消息以在结尾部分打印,例如:

/error/ { errors[++blErrorCounter] = "Got error at line " FNR }
END {
    if (blErrorCounter) {
        print "Log contains", blErrorCounter, "errors!"
        for (ec=1; ec <= blErrorCounter; ec++) {
            print errors[ec]
        }
    } else {
        print "Log contains no errors!"
    }
}
/error/{errors[++blErrorCounter]=“在第“FNR”行出现错误”
结束{
如果(blErrorCounter){
打印“日志包含”,blErrorCounter,“错误!”
对于(ec=1;ec,在
awk
脚本中有几个
print()
语句,此代码是最后一部分,但其
print()
输出应该出现在第一部分,是这样的吗?在
awk
脚本中有几个
print()
语句,此代码是最后一部分,但它的
print()
输出应该出现在第一个,是这样的吗?
/error/ { errors[++blErrorCounter] = "Got error at line " FNR }
END {
    printf "Log contains %d errors!\n", blErrorCounter
    for (ec=1; ec <= blErrorCounter; ec++) {
        print errors[ec]
    }
}