I am trying sed s/\w/\u/g but it doesn't do anything. I think because it doesn't recognize the \u ?
GNU sed version 4.1.2
sed 's/\w/\u&/' \u must apply to something; by itself it does nothing; in this case & means "whatever matched the search pattern". g is to be omitted if you want just the first letter; if you include g it will make uppercase all letters.
sed "s/.*/\L&/g" | sed "s/\w/\u&/" because i first want to lowercase everything sed -e 's/.*/\L&/' -e 's/\w/\u&/' absolutely works, I have tested it. Can you try ls -l | sed -e 's/.*/\L&/' -e 's/\w/\u&/' as a quick test?