【发布时间】:2014-11-25 02:32:19
【问题描述】:
所以我正在处理一个名为汽车的文件,这是它的内容:
toyota corolla 1970 2500
chevy malibu 1999 3000
ford mustang 1965 10000
volvo s80 1998 9850
ford thundbd 2003 10500
chevy malibu 2000 3500
honda civic 1985 450
honda accord 2001 6000
ford taurus 2004 17000
toyota rav4 2002 750
chevy impala 1985 1550
ford explor 2003 9500
我正在使用 grep 过滤包含特定汽车制造商的行,然后将其传送到我的 awk 语句,最后将最终结果传送到带有 tee 的新管道。
这是我遇到问题的代码行:
grep "$model" cars |
awk '($3+0) >= ("'$max_year'"+0) && ($4+0) <= ("'$max_price'"+0)' |
tee last_search
我之前在脚本中将变量 max_year 和 max_price 定义为用户输入。
文件 last_search 已创建,但始终为空。
【问题讨论】:
-
$max_year和$max_price是什么?你可能会更好地使用-v max_year="$max_year"等,然后在awk中使用max_year等,而不需要玩报价游戏。在几乎所有情况下grep | awk都是不必要的,因为您可以直接在awk中进行相同的过滤。 -
我之前在脚本中定义了变量 max_year 和 max_price 作为用户输入。
-
Etan 表示 awk -v max_year="$max_year" -v max_price="$max_price" 然后丢失 awk 代码块中所有无关的引号 - { } 字符内的部分。跨度>