#! /bin/sed -f
# Put a space in front to simplify treatment of the first word
s/^/ /
:loop
/[ ][a-z]/ {
# Get the letter to be changed and construct <letter><before>\n<after>
s/^\(.*[ ]\)\([a-z]\)\(.*\)$/\2\1\
\3/
h
# Capitalize the first letter of pattern space, remove the rest of it
s/^\(.\).*/\1/
y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/
G
# Pattern space is now <new>\n<old><before>\n<after>; construct
# <before><new><after> and loop back (<after> is not matched by the RE)
s/^\(.\)\n.\(.*\)\n/\2\1/
b loop
}
# Remove the space we had added
s/^.//
### colorized by sedsed, a debugger and code formatter for sed scripts
### original script: http://sed.sf.net/grabbag/scripts/cflword2.sed