On Wed, Aug 27, 2025 at 6:13 PM Greg Sabino Mullane <[email protected]> wrote:
> On Wed, Aug 27, 2025 at 11:28 AM Ron Johnson <[email protected]> > wrote: > >> Is there a way around this, other than writing my own HTMLifier? >> > > Not unless your to_char() output can be coerced back into a numeric. (for > the archives sake, see fe_utils/print.c for the complete list of > right-aligned columns: int family, float, numeric, oid, xid, cid, and the > when-will-it-finally-die money type) > Easier to write a generic shell function. HTMLify_csv() { local -rn pFormats="$1" local line local -a lFields printf '<table border=1><font size="2">\n' read -r line IFS='|' read -r -a lFields <<< "${line}" local -i lFldCnt=${#lFields[@]} printf '<tr>' for ((i=0; i<$lFldCnt; i++)); do printf '<th align="%s">%s</th>' center "${lFields[i]}"; done printf "</tr>\n" while IFS= read -r line do [[ $line =~ rows?\)$ ]] && { printf '<tr><td>%s</td></tr>\n' "$line"; continue; } IFS='|' read -r -a lFields <<< "${line}" printf '<tr>' for ((i=0; i<$lFldCnt; i++)) do printf '<td align="%s">%s</td>' "${pFormats[i]}" "${lFields[i]}" done printf "</tr>\n" done printf '</table>\n' } declare -a Formats=(right left) psql -XAc "select to_char(oid::integer, '99,999') as oid, datname from pg_database;" | HTMLify_csv Formats It requires an array that describes how you want each column aligned. -- Death to <Redacted>, and butter sauce. Don't boil me, I'm still alive. <Redacted> lobster!
