При поиске быстрого способа правой обрезки текстовой строки я нашел следующую вики-страницу:
В главе об AWK приводится 2 набора примеров:
ltrim(v) = gsub(/^[ \t]+/, "", v)
rtrim(v) = gsub(/[ \t]+$/, "", v)
trim(v) = ltrim(v); rtrim(v)
or
function ltrim(s) { sub(/^[ \t]+/, "", s); return s }
function rtrim(s) { sub(/[ \t]+$/, "", s); return s }
function trim(s) { return rtrim(ltrim(s)); }
Нижний пример полностью знаком и отлично работает, но первый пример отличается от всего, что я видел за 20 лет программирования на AWK. Похоже, это действительно полезный быстрый способ определить и использовать функцию в одной строке. Я не могу заставить этот синтаксис работать в GNU Awk 3.1.5 — значит, это что-то, что было представлено в более поздней версии?
Буду признателен за реальный рабочий пример, если кто-то знаком с этим синтаксисом.