Archive for December, 2013
Interesting – Understanding Imports and Pythonpath
December 4, 2013
Leave a comment
Categories: Interesting, python
sed – Convert to Title Case
December 2, 2013
3 comments
Problem:
I needed to ensure that text read from a file was in Title Case. Solution had to be sed 🙂
Solution:
1. This is what I came up with, then I googled and found much simpler solutions that work.
echo "noRTh weST, 0" |sed 's/^\([A-Za-z]\)\([A-Za-z]\+\)/\U\1\L\2/' North weST, 0
2. A simpler solution
echo "noRTh weST, 0" | sed -e 's/.*/\L&/' -e 's/[a-z]*/\u&/g' North West, 0 sed -e 's/.*/\L&/' - Convert all the characters to lowercase sed -e 's/[a-z]*/\u&/g' - Convert only the first character or each word to uppercase.
\L – Turn the replacement to lowercase until a `\U’ or `\E’ is found,
& – References the whole matched portion of the pattern space.
\u – Turn the next character to uppercase
3. Above solution will fail for the following cases
echo "nor'th we'ST, 0" | sed -e 's/.*/\L&/' -e 's/[a-z]*/\u&/g' Nor'Th We'St, 0 echo "nor'th we'ST, 0" | sed -e 's/.*/\L&/' -e 's/[[:graph:]]*/\u&/g' Nor'th We'st, 0
/[[:graph:]]/ – Non-blank character (excludes spaces, control characters, and similar)
Source:
http://bashscripts.org/forum/viewtopic.php?f=21&t=889
http://www.ruby-doc.org/core-1.9.3/Regexp.html
Categories: sed