Это - потому что Вы пропускаете секунду -v
:
awk -v SOURCEIP="$SOURCEIP" -v REVERSEDNS="$REVERSEDNS" '{
gsub(/^_TMPSOURCEIP_/, SOURCEIP);
gsub(/^_TMPREVERSEDNS_/, REVERSEDNS);
print
}' /home/foo/footemplate
-v
потребности присутствовать для каждой переменной Вы утверждаете. Причина, что это помещает ошибку в точке, состоит в том, потому что это - место, в котором awk уверен, что Вы записали недопустимый синтаксис.
, который считывает входные данные из stdin.
Чтобы заставить прочитать их из файла
Источник O'Reilly's [113019]lex & yacc[113020].[112520].