Listing of file 'sedscr:'
s/^/ /;
s/$/aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ/;
s/ \([a-z]\)\(.*\1\)\(.\)/ \3\2\3/;
s/ \([a-z]\)\(.*\1\)\(.\)/ \3\2\3/;
s/.\{52\}$//;
s/ //;
$ echo This is a test | sed -f sedscr
This Is a test
$ echo someone forgot to capitalize | sed -f sedscr
Someone Forgot to capitalize
This works with '/usr/bin/sed' from a FreeBSD 6.2-RELEASE installation.
Above sed script stolen from:
<http://dervish.wsisiz.edu.pl/~bse26236/batutil/help/sed/CAPITALI.HTM>
With a minor change: first three words to first two words.
--On Thursday, October 29, 2009 15:41 +0000 Steve Simon
<st...@quintile.net> wrote:
Sorry, not really the place for such questions but...
I always struggle with sed, awk is easy but sed makes my head hurt.
I am trying to capitalise the first tow words on each line (I could use
awk as well but I have to use sed so it seems churlish to start another
process).
capitalising the first word on the line is easy enough:
h
s/^(.).*/\1/
y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/
x
s/^.(.*)/\1/
x
G
s/\n//
Though there maye be a much easier/more elegant way to do this,
but for the 2nd word it gets much harder.
What I really want is sam's ability to select a letter and operate on it
rather than everything being line based as sed seems to be.
any neat solutions? (extra points awarded for use of the branch operator
:-)
-Steve