我使用for循环迭代文件列表,并在每次迭代时将一个文件名传递给awk脚本。
我不仅要打印错误代码,还要打印生成错误的文件的名称。
类似的东西:打印错误”;“ THENAMEOF_THE_FILE >> file.txt;
awk脚本如下所示:
awk ' function errorManager(error)
{
print error >> file.txt;
}
BEGIN {error1="ERROR CODE X"}
{if (NR==1)
if(length($0) != 10)
{
errorManager(error1)
}
}
END{print "STOP"}' $1
答案 0 :(得分:1)
这是您要寻找的:
awk '
function errorManager(idx, errorArr, error) {
errorArr[1] = "ERROR CODE X"
error = (idx in errorArr ? errorArr[idx] : "Unspecified Error")
printf "Error %s[%d]: %s\n", FILENAME, FNR, error | "cat>&2"
}
NR==1 {
if ( length($0) != 10 ) {
errorManager(1)
}
}
END{ print "STOP" }
' "$1" 2>"file.txt"