$ echo "Today is XX" | sed -e "s/XX/$(date +%F)/" Today is 2012-10-11 s/XX/Thursday/ $ echo "Today is XX" | sed -f replacements.sed Today is Thursday s/XX/$(date +%F)/ $ echo "Today is XX" | sed -f replacements.sed Today is $(date +%F) cat < replacements.sed /XX/{s//'"$(date +%F)"'/;s/.*/echo '&'/e} ! echo "Today is XX" | sed -f replacements.sed cat < replacements.sed /XX/{ s//'"$(date +%F)"'/ s/.*/echo '&'/ } ! echo "Today is XX" | sed -f replacements.sed | sh aaa bbb ccc #!/bin/sh STRING="${1////\/}" # using parameter expansion to prevent / collisions shift sed " s/aaa/$STRING/ " "$@" ./sed.sh "fo/obar" fo/obar bbb ccc [ghoti@pc ~/tmp]$ cat scr.sed 1{;h;d;};/^--$/g [ghoti@pc ~/tmp]$ sed -f scr.sed <(date '+%Y-%m-%d'; printf 'foon--nbarn') foo 2012-10-10 bar [ghoti@pc ~/tmp]$