#!/bin/sh # mdtf - markdown table formater awk -F '|' ' NR == 1 { n = NF-2 } { for (j = 1; j < n+2; j++) cell[NR,j] = $(j+1) } END { for (j = 1; j < n+2; j++) { max = 1 for (i = 1; i <= NR; i++) { l = length(cell[i,j]) max = l > max ? l : max } for (i = 1; i <= NR; i++) { p = substr(cell[i,j], 1, 1) line[i] = line[i] FS cell[i,j] fill(max-length(cell[i,j]), p) } } for (i = 1; i <= NR; i++) print line[i] } func fill(n, p, i, s) { for (i = 0; i < n; i++) s = s p; return s } '