我在bash中编写一个脚本,它需要一个参数并存储它;
threshold = $1
然后我有样本数据,如下所示:
5 blargh 6 tree 2 dog 1 fox 9 fridge
我只想打印数字大于作为参数(阈值)输入的数字的行.
我目前正在使用:
awk '{print $1 > $threshold}' ./file
但没有打印出来,帮助将不胜感激.
你很近,但它需要更像这样:
$threshold=3 $awk -v threshold="$threshold" '$1 > threshold' file
用-v创建变量避免了在awk脚本中尝试扩展shell变量的丑陋.
编辑:
您显示的当前代码有一些问题.第一个是你的awk脚本是单引号(好的),它会阻止扩展的$threshold,所以这个值永远不会插入你的脚本中.第二,你的条件属于大括号之外,这将使它成为:
$1 > threshold { print }
这是有效的,但是print不是必需的(这是默认的动作),所以我把它缩短了
$1 > threshold
原文地址:https://www.jb51.cc/bash/383683.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。