awk显示环境内容的变量

问题描述 投票:0回答:1

我从系统一变量返回一个字符串,如:

$VARIABLE/dir/text.file

我试图使用qazxsw poi,但我遗漏了一些东西:

gsub

它返回错误:

onstat -c | grep ^MSGPATH | awk 'gsub (/$INFORMIXDIR/, ${INFORMIXDIR}) {print $2}'

可能是什么问题呢?

variables awk string-substitution
1个回答
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}' ,因为它是一个特殊的正则表达式字符(意思是“字符串结尾”)

© www.soinside.com 2019 - 2024. All rights reserved.