检查第2列中的值,如果该值不是50的增量,则打印行
Input file
1000 2450 1
1000 2500 1
1000 2501 1
1000 2550 1
1000 2601 1
1000 2650 1
所需的输出
error 1000 2501 1
error 1000 2601 1
使用我尝试过的Karakfa的答案
awk '{$2%50
{ err = FNR; exit }
END { print "Invalid file on line", err; exit 1}
print "Wrong File :", FILENAME }' file
预先感谢
答案 0 :(得分:2)
$ awk '$2%50{print "error",$0}' file
error 1000 2501 1
error 1000 2601 1
如果该值不是50的倍数,则余数mod 50将为非零。
我想这就是您要尝试的吗?
$ awk '$2%50 {err=FNR; exit}
END {if(err)
{print "Invalid file on line:", err;
print "Wrong File :", FILENAME;
exit 1}}' file
注释END
不能出现在任何语句中,只能显示为“条件”,类似于BEGIN
。