Я борюсь с проблемой awk в моем сценарии оболочки bash. В приведенном ниже фрагменте кода я передаю переменную 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}'`
$(…)
вместо обратных кавычек вокруг команд. - person Jonathan Leffler   schedule 22.02.2014