テキスト文字列を正しくトリミングする簡単な方法を探しているときに、次の wiki ページを見つけました。
AWK に関する章では、2 セットの例を示します。
ltrim(v) = gsub(/^[ \t]+/, "", v)
rtrim(v) = gsub(/[ \t]+$/, "", v)
trim(v) = ltrim(v); rtrim(v)
また
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 プログラミングで見たものとは異なって見えます。関数を 1 行で定義して使用するための非常に便利な簡単な方法のように見えます。この構文を GNU Awk 3.1.5 で動作させることができません。これは、より最近のバージョンで導入されたものですか?
誰かがこの構文に精通している場合、実際に機能する例に感謝します。