#! /usr/bin/gawk -f # Last edited on 2025-11-02 12:50:50 by stolfi # Reads a text file. Joins consecutive non-blank, # non-comment lines into a single line. BEGIN { curlin = "" } // { gsub(/[ ]*+$/, "", $0) gsub(/^[ ]*/, "", $0) gsub(/^[%] /, "# ", $0) } /^[#]/ { print; next; } /^ *$/ { if (curlin != "") { print curlin; curlin = "" } print "" next } // { sep = (curlin == "" ? "" : " ") curlin = ( curlin sep $0) next } END { if (curlin != "") { print curlin; curlin = "" } }