繁体   English   中英

在内部使用bash变量时,awk命令无法按预期工作

[英]awk command not working as expected when bash variable is used inside

我试图通过在awk命令中创建变量来在awk中使用bash变量,如下所示。 但似乎不起作用

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

实际输出为:

<empty / nothing printed >

预期输出为:

你好

您为什么不这样做:

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM