Linux awk:Shell变量在从文件获取字符串时不显示
我有一个文件位置_data.py,其中包含一个字符串变量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 -
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)