Один из способов получить целевое соотношение сторон — использовать цикл, начиная с прямоугольного вывода по умолчанию, проверяя соотношение сторон, регулируя высоту столбца, разделяя и снова объединяя, а затем снова проверяя соотношение сторон...
Вероятно, вы имели в виду объединение команд awk с символами вертикальной черты. Может пригодиться, если вам нужно комбинировать разные инструменты. Если все инструменты awk, другие ответы показывают хорошие решения только с одним вызовом awk.
for i in *.gw; do
awk '/ALPHA_BF :/{sub(/^ *[0-9.]+/," #J #")};{print}' $i |
awk '/REVAPMN:/{sub(/^ *[0-9.]+/," #G #")};{print}' |
awk '/GW_REVAP :/{sub(/^ *[0-9.]+/," #I #")};{print}' > $i.tpl
done
Даже оболочку for loop можно поместить внутрь awk:
awk '
FNR == 1 {close(outfile); outfile = FILENAME ".tpl"}
/ALPHA_BF :/ {sub(/^ *[0-9.]+/," #J #")}
/REVAPMN:/ {sub(/^ *[0-9.]+/," #G #")}
/GW_REVAP :/ {sub(/^ *[0-9.]+/," #I #")}
{print > outfile}
' *.gw