相互比较记录值

相互比较记录值

考虑以下文件:

foo,boo,900
foo,boo,900
foo,boo,850

我需要将a字段($3)与下一条记录进行比较,如果差异等于或大于50,则打印该记录。

即从上面的示例中,$3从第二条记录 -$3从第三条记录 = 50,那么输出将是:

foo,boo,850

答案1

你可以试试这个awk

awk -F"," 'NR != 1 { if ((x - $3) >= 50) print $0; } { x = $3 }' file

如果您不想在提交$1更改时打印行,则可以使用此方法:

awk -F"," 'NR != 1 { if ($1 == fc && (x - $3) >= 50) print $0; } { x = $3; fc = $1; }' file

相关内容