我在我的bash shell脚本中遇到了一个awk问题。在下面的代码片段中,我在awk中传递了一个用于正则表达式的变量var_awk。这样做是为了得到上述正则表达式行,但下面的回声不显示任何数据awk传递变量
echo `ls -ltr $date*$f* | /usr/xpg4/bin/awk -v reg=$var_awk '/reg/ {print $0}'`
我无法章为正则表达式,虽然当我这样做印刷REG它打印但没有做的正则表达式时,如预期。
if [ $GE == "HBCA" ] || [ $GE == "HBUS" ] || [ $GE == "HBEU" ]; then
for f in `ls -ltr $date*GEN*REVAL*log|grep -v LPD | awk '{split($9,a,"_")}{print a[3]}'`; do
echo $f
var_awk="$date"_RESET_CALC_"$f"
echo $var_awk
echo `ls -ltr $date*$f* | /usr/xpg4/bin/awk -v reg=$var_awk '/reg/ {print $0}'`
一般来说,你应该使用'$(...)'表示法来代替命令周围的反引号。 –