【发布时间】:2014-02-22 16:05:47
【问题描述】:
我在 bash shell 脚本中遇到了一个 awk 问题。在下面的代码 sn-p 中,我正在为 awk 中的正则表达式传递一个变量 var_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}'`
【问题讨论】:
-
一般来说,您应该使用
$(…)符号而不是命令周围的反引号。
标签: unix awk solaris-10