Linux awk:Shell变量在从文件获取字符串时不显示

Linux awk:Shell变量在从文件获取字符串时不显示,linux,shell,ubuntu,awk,Linux,Shell,Ubuntu,Awk,我有一个文件位置_data.py,其中包含一个字符串变量 loc = "somewhere-$xyz" 在shell中,我有一个变量名“xyz”,其值为1。 当我这样做时: >loc=$(awk '/loc/{print $3}' location_data.py) 我明白了 “某处-${xyz}” 相反,我想要 “某处-1” 您需要将shell变量传递给awk,方法是将其传递给awk变量,然后在/…/内部搜索也将不起作用 使用类似于: locNew=$(awk -

我有一个文件位置_data.py,其中包含一个字符串变量

loc = "somewhere-$xyz"
在shell中,我有一个变量名“xyz”,其值为1。 当我这样做时:

>loc=$(awk '/loc/{print $3}' location_data.py)
我明白了

“某处-${xyz}”

相反,我想要

“某处-1”


您需要将shell变量传递给
awk
,方法是将其传递给
awk
变量,然后在
/…/
内部搜索也将不起作用

使用类似于:

locNew=$(awk -v locVar="$loc" '$0 ~ locVar{print $3}' location_data.py)

另外,尝试创建一个新的shell变量(作为一种良好的编程实践),以防以后需要引用它们

locNew=$(awk -v locVar="$loc" 'index($0,locVar){print $3}' location_data.py)