#!/bin/sh set -eu usage() { cat <<-'EOF' Usage: pre PREFIX < STDIN EOF } SEP=: while getopts 'n' flag; do case "$flag" in (n) SEP= ;; (*) usage >&2 exit 2 ;; esac done shift $((OPTIND - 1)) PREFIX="${1:-}" eval "$(assert-arg -- "$PREFIX" 'PREFIX')" # FIXME: using "while" so we avoid GNU sed's buffering while read -r line; do printf '%s%s %s\n' "$PREFIX" "$SEP" "$line" done