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

回到顶部