Объединение нескольких функций awk

Один из способов получить целевое соотношение сторон — использовать цикл, начиная с прямоугольного вывода по умолчанию, проверяя соотношение сторон, регулируя высоту столбца, разделяя и снова объединяя, а затем снова проверяя соотношение сторон...enter image description here

1
16.03.2021, 17:14
2 ответа

Вероятно, вы имели в виду объединение команд 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
-1
18.03.2021, 22:24

Даже оболочку 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
3
18.03.2021, 22:24

Теги

Похожие вопросы