AWK显示变量
我从系统中得到一个变量返回一个字符串,如:AWK显示变量
$VARIABLE/dir/text.file
我tryed使用gsub
,但我失去了一些东西:
onstat -c | grep ^MSGPATH | awk 'gsub (/$INFORMIXDIR/, ${INFORMIXDIR}) {print $2}'
返回错误:
awk: cmd. line:1: gsub (/$INFORMIXDIR/, ${INFORMIXDIR}) {print $2} awk: cmd. line:1: ^syntax error
awk: cmd. line:1: gsub (/$INFORMIXDIR/, ${INFORMIXDIR}) {print $2}
awk: cmd. line:1: ^0 is invalid as number of arguments for gsub
可能是什么问题?
回答:
因为awk正文是在单引号中,所以无法展开shell变量。安全地做到这一点的方式是通过与-v
选项awk的值:
... | awk -v dir="$INFORMIXDIR" 'gsub (/\$INFORMIXDIR/, dir) {print $2}'
注意,您必须逃脱正则表达式的$
,因为它是一个特殊的正则表达式字符(意为“结束字符串“)
以上是 AWK显示变量 的全部内容, 来源链接: utcz.com/qa/266232.html