awk:从bash传递变量

时间:2012-03-19 13:57:58

标签: awk

我使用以下代码获取语法错误。是否有一个不支持“-v”选项的awk版本或者我错过了什么?感谢。

#!/usr/local/bin/bash
f_name="crap.stat" 
S_Date="2012-02-10"
E_Date="2012-02-13"

awk -F "\t" -v s_date="$S_Date" -v e_date="$E_Date" 'BEGIN {print s_date,e_date}' $f_name

2 个答案:

答案 0 :(得分:1)

您的代码完全适用于我的awk(GNU Awk 3.1.6)。

还有另一种方法,如果您导出变量,可以在ENVIRON数组

中使用它
$ export f_name="crap.stat"
$ awk '{ print ENVIRON["f_name"] }' anyfile
crap.stat

答案 1 :(得分:1)

Solaris 10上的默认awk程序(又名oawk)似乎不支持-v选项;替代nawk计划确实支持它。有些人会切换名称awk,因此它是nawk的链接,因此您无法轻易预测到awk找到的名称。

HP-UX 11.x,AIX 6.x和Mac OS X(10.7.x)上的awk程序都支持-v表示法,因为{{{{{{ 3}}期望支持-v