当内部使用bash变量时,awk命令无法正常工作

时间:2014-07-02 13:57:16

标签: linux bash unix awk cmd

我尝试在awk命令中使用bash变量,如下所示在awk命令中创建一个变量。但它似乎不起作用

b=hi
$ echo "hihello" |awk -v myvar=$b -F"$0~myvar" '{print $2}'

实际输出为:

<empty / nothing printed >

预期输出为:

  

您好

2 个答案:

答案 0 :(得分:1)

你为什么不这样做:

b=hi ; echo "hihello" | awk -F"$b" '{print $2}'
hello

答案 1 :(得分:0)

尝试以下awk命令。将字段分隔符放在BEGIN块中。

$ b=hi; echo "hihello" | awk -v myvar=$b  'BEGIN{FS=myvar}{print $2}'
hello

它将myvar变量的值设置为Field Separator。因此,打印第二列将为您提供字符串hello