我有一个(可能(简单的查询re:AWK。我正在构建一个函数,该函数使用函数定义的变量作为过滤器来选择我的行
function myfc
br=$1
echo $br
awk '{$2=="$br"}' infile > outfile
myfc ZZ
所以我的myfc
函数应该选择$2=ZZ中的所有行。但事实并非如此。echo $br
确实返回ZZ,但{$2=="$br"}
似乎没有选择所需的行。我尝试过几个版本的添加/删除{$2=="$br"}
中的引号,但都没有用。
有什么提示吗?
我不确定你使用的是什么shell,但在基本的sh:中
function myfc { awk -v br=$1 '$2==br { print "Hi " $2 " and " $1 }'; }
检测字段2何时是作为参数提供给myfc的值;因此以下内容:
printf "t zzns yynu aan" | myfc zz
生产:
Hi zz and t
因此,为了匹配您的用例:
myfc ZZ < infile > outfile
应该做到这一点。