首页 > 解决方案 > awk:当列总和在一个范围内时提取行

问题描述

使用 awk 从 $3 - $2 介于 200 到 400 之间的文件中提取行。

我正在使用的命令:

awk '{ if ($3 - $2 > 199 && < 401) print $0}' Input_File

错误信息:

  awk: syntax error at source line 1
 context is
    { if ($3 - $2 > 199 && >>>  < <<<  401) print $0}
awk: illegal statement at source line 1

如果我只使用一个参数,例如,该命令有效 awk '{ if ($3 - $2 > 199) print $0}' Input_File,但当我使用&&. 我该如何解决?

示例输入文件:

A    1000    1500
B    1000    1300
C    1000    1100
D    1000    1200

示例所需的输出:

B    1000    1300
D    1000    1200

标签: awk

解决方案


你之后的条件&&是不完整的。您可以只使用:

awk '$3-$2 > 199 && $3-$2 < 401' file

B    1000    1300
D    1000    1200

推荐阅读