我在bash中编写一个脚本,它接受一个参数并存储它;
threshold = $1
Run Code Online (Sandbox Code Playgroud)
然后我有样本数据,看起来像:
5 blargh
6 tree
2 dog
1 fox
9 fridge
Run Code Online (Sandbox Code Playgroud)
我希望只打印数字大于作为参数(阈值)输入的数字的行.
我目前正在使用:
awk '{print $1 > $threshold}' ./file
Run Code Online (Sandbox Code Playgroud)
但没有打印出来,帮助将不胜感激.
Fat*_*ror 29
你很接近,但它需要更像这样:
$ threshold=3
$ awk -v threshold="$threshold" '$1 > threshold' file
Run Code Online (Sandbox Code Playgroud)
创建变量-v避免了在awk脚本中尝试扩展shell变量的丑陋.
编辑:
您显示的当前代码存在一些问题.首先,您的awk脚本是单引号(好),停止$threshold扩展,因此该值永远不会插入到您的脚本中.其次,你的病情属于大括号之外,这会使它成为:
$1 > threshold { print }
Run Code Online (Sandbox Code Playgroud)
这是有效的,但是'print是没有必要的(这是默认动作),这就是我缩短它的原因
$1 > threshold
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
31727 次 |
| 最近记录: |