awk - 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 '$3-$2 > 199 && $3-$2 < 401' file
B 1000 1300
D 1000 1200
推荐阅读
- excel - vba 图表从一张纸复制到另一张纸。(希望使用工作表索引参考而不是名称)
- tensorflow-serving - Tensorflow Serving,在线预测:如何构建一个接受“image_bytes”作为输入张量名称的签名定义?
- java - 我如何解决 SpringWebFlow + SpringBoot 中的静态资源?
- amazon-web-services - AWS Comprehend 自定义分类作业输出的行数多于输入行数
- c# - C# - 创建一个递归函数来计算列表的总和。是否可以仅使用列表作为唯一参数?
- javascript - 如何使用函数动态设置img src
- r - 如何根据不同数据框的两个 ID 列的匹配从数据框列中提取值?
- python - 二进制图像上的 Tesseract OCR
- plsql - 如何为游标的选择语句中使用的失败条件引发异常
- symfony - 移动到另一个托管 Symfony 2 后网站关闭