字段编号大于AWK的打印行

时间:2013-11-05 23:44:36

标签: bash awk

我正在用bash编写一个脚本,它接受一个参数并存储它;

threshold = $1

然后,我的样本数据看起来像:

5 blargh
6 tree
2 dog
1 fox
9 fridge

我希望只打印数字大于作为参数(阈值)输入的数字的行。

我目前正在使用:

awk '{print $1 > $threshold}' ./file

但没有打印出来,帮助将不胜感激。

1 个答案:

答案 0 :(得分:28)

你很接近,但需要更像这样:

$ threshold=3
$ awk -v threshold="$threshold" '$1 > threshold' file

使用-v创建变量可以避免在awk脚本中尝试扩展shell变量的难度。

编辑:

您显示的当前代码存在一些问题。首先,您的awk脚本是单引号(好),这会阻止$threshold扩展,因此该值永远不会插入到您的脚本中。其次,你的病情属于大括号之外,这将使它成为:

$1 > threshold { print }

这样可行,但是`print不是必需的(这是默认动作),这就是为什么我把它缩短为

$1 > threshold
相关问题