#!/usr/bin/env bash set -euo pipefail usage() { echo "Usage: $0 [-s specialchar] [-h] colmark [colmark ...]" } sflag= sep= while getopts "hs:" opt; do case $opt in s) sflag=1 sep="$OPTARG" ;; h) usage exit 0 ;; ?) usage exit 1 ;; esac done if [ -z "$sflag" ]; then sep='%' fi shift $((OPTIND - 1)) sep_escaped=$(printf '%s\n' "$sep" | sed 's/[\/&]/\\&/g') sed_args=() for arg in "$@"; do arg_escaped=$(printf '%s\n' "$arg" | sed 's/[\/&]/\\&/g') sed_args+=(-e "s/$arg_escaped/$sep_escaped&/g") done sed "${sed_args[@]}" | column -t -s"$sep_escaped" -o' '