我从系统一变量返回一个字符串,如:
$VARIABLE/dir/text.file
我试图使用qazxsw poi,但我遗漏了一些东西:
gsub
它返回错误:
onstat -c | grep ^MSGPATH | awk 'gsub (/$INFORMIXDIR/, ${INFORMIXDIR}) {print $2}'
可能是什么问题呢?
因为awk主体是单引号,所以无法展开shell变量。安全地执行此操作的方法是使用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:
-v
请注意,您必须在正则表达式中转义... | awk -v dir="$INFORMIXDIR" 'gsub (/\$INFORMIXDIR/, dir) {print $2}'
,因为它是一个特殊的正则表达式字符(意思是“字符串结尾”)