我在我的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}'`
一般來說,你應該使用'$(...)'表示法來代替命令周圍的反引號。 –