2012-03-15 83 views
2

以下按预期工作。在awk输出中使用变量

awk -F'^' '{printf "set %s:%s %s\n",$1,$2, $7}' todel.txt | sed 's/$/\\r\\n/' >> tofile.txt 

但是当我尝试添加一个变量输出,如下图所示,我得到一个错误:

awk -F'^' '{printf "set %s:%s:%s %s\n",$1,$2,$myvar $7}' todel.txt | sed 's/$/\\r\\n/' >> tofile.txt 

回答

5

$myvar不单引号扩大。
可以使用-v选项shell变量传递给awk

awk -F'^' -v myvar=$myvar '{printf "set %s:%s:%s %s\n",$1,$2,myvar,$7}' todel.txt 
+0

AWK:(文件名= todel.txt FNR = 1)致命的:没有足够的论据,以满足格式字符串#似乎并没有按预期工作。 – shantanuo 2012-03-15 14:39:58

+0

我添加了缺失的逗号。我不在我的电脑上,所以无法测试。 ) - : – tripleee 2012-03-15 14:41:53

+0

是的,我还没有测试失踪的逗号。 – kev 2012-03-15 14:43:09