Make all words begin with capital letter?


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Make all words begin with capital letter?
# 1  
Old 01-07-2013
Make all words begin with capital letter?

I need to use bash to convert sentences where all words start with a small letter into one where all words start with a capital letter.

So that a string like:

Code:
are utilities ready for hurricane sandy

becomes:

Code:
Are Utilities Ready For Hurricane Sandy

# 2  
Old 01-07-2013
Had this sitting around. Use nawk on solaris.
Code:
awk 'function titlecase(STR, N, M, A, OUT)
{
        OUT=""
        N=split(STR, A, " ");
        for(M=1; M<=N; M++)
        {
                A[M]=tolower(A[M]);
                A[M]=toupper(substr(A[M],1,1)) substr(A[M], 2);
                OUT=OUT" "A[M]
        }

        return(substr(OUT, 2));
}

{ $0=titlecase($0) } 1' inputfile > outputfile

This User Gave Thanks to Corona688 For This Post:
# 3  
Old 01-07-2013
In BASH using tr command:
Code:
#!/bin/bash

for words in are utilities ready for hurricane sandy
do
   for((i=0;i<${#words};i++))
   do
     if [ $i -eq 0 ]
     then
         echo -e "${words:$i:1}\c" | tr '[a-z]' '[A-Z]'
     else
         echo -e "${words:$i:1}\c"
     fi
   done
   echo -e " \c"
done
echo -e "\n"

This User Gave Thanks to Yoda For This Post:
# 4  
Old 01-07-2013
try also:
Code:
typeset -u fl
while read -a line
do
  c=0
  for word in ${line[@]}
  do
    fl=${word[@]:0:1}
    line[$c]="$fl${word[@]:1}"
    (( c = c + 1 ))
  done
  echo ${line[@]}
done < infile

or with awk (to preserve blank space format):
Code:
awk '{for (i=1; i<=NF; i++) {$i=(toupper(substr($i,1,1)) substr($i,2))}} 1' infile

This User Gave Thanks to rdrtx1 For This Post:
# 5  
Old 01-07-2013
Code:
bash$ set -- are utilities ready for hurricane sandy
bash$ echo "${@^}"
Are Utilities Ready For Hurricane Sandy

These 3 Users Gave Thanks to binlib For This Post:
# 6  
Old 01-08-2013
if you have GNU sed, then try the below
Code:
 
$ echo "one two three Four" | sed 's,^.,\U&,;s, .,\U&,g'
One Two Three Four

# 7  
Old 01-08-2013
Quote:
Originally Posted by binlib
Code:
bash$ set -- are utilities ready for hurricane sandy
bash$ echo "${@^}"
Are Utilities Ready For Hurricane Sandy

That is a very neat trick!
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Replace the first letter of each line by a capital

Hi, I need to replace, as the title says, the first letter of each line (when it's not a number) by the same letter, but capital. For instance : hello Who 123pass Would become : Hello Who 123pass Is there a way with sed to do that ? Or other unix command ? Thank you :) (7 Replies)
Discussion started by: ganon551
7 Replies

2. Shell Programming and Scripting

Gawk gensub, match capital words and lowercase words

Hi I have strings like these : Vengeance mitt Men Vengeance gloves Women Quatro Windstopper Etip gloves Quatro Windstopper Etip gloves Girls Thermobite hooded jacket Thermobite Triclimate snow jacket Boys Thermobite Triclimate snow jacket and I would like to get the lower case words at... (2 Replies)
Discussion started by: louisJ
2 Replies

3. Shell Programming and Scripting

Counting all words that start with a capital letter in a string using python dictionary

Hi, I have written the following python snippet to store the capital letter starting words into a dictionary as key and no of its appearances as a value in this dictionary against the key. #!/usr/bin/env python import sys import re hash = {} # initialize an empty dictinonary for line in... (1 Reply)
Discussion started by: royalibrahim
1 Replies

4. Shell Programming and Scripting

Match groups of capital words using gawk

Hi I'd like to extract from a text file, using gawk, the groups of words beginning with a capital letter, that are not at the begining of a sentence (i.e. Not after a full stop and a pace ". "), including special characters like registered or trademark (® or ™ ). For example I would like to... (1 Reply)
Discussion started by: louisJ
1 Replies

5. Shell Programming and Scripting

[Solved] check if chars is a capital letter and translate it

how can i check if read -n 1 LETTER; LETTER is a capital letter and after translate in minuscule. i have thought with: tr or no? (7 Replies)
Discussion started by: tafazzi87
7 Replies

6. Shell Programming and Scripting

converting day to capital letter...

Hello, I am receiving a file every day as this format. Since today is friday, the format is, PGI_STG_FRIDAY14.TXT. I need to write the shell script to check if this file exist in folder... I am using date format.. export DATE=`date '+%A'` echo $DATE The output is Friday But i... (8 Replies)
Discussion started by: govindts
8 Replies

7. Shell Programming and Scripting

search for words with capital leters

Hi, I just want to search a file for any words containng a capital letter and then display these words only as a list I have been trying grep but to no has not helped.(im using the bash shell) (7 Replies)
Discussion started by: djdaniel3
7 Replies

8. Shell Programming and Scripting

how to find capital letter names in a file without finding words at start of sentence

Hi, I want to be able to list all the names in a file which begin with a capital letter, but I don't want it to list words that begin a new sentence. Is there any way round this? Thanks for your help. (1 Reply)
Discussion started by: kev269
1 Replies

9. UNIX for Dummies Questions & Answers

Transformation capital letter

:confused: Hye everybody i would like to know if exist a internet site where i can founs some interesting shell script very usefull I need to transform hundreds names of files escribed in CAPITAL letter in minuscule letter do oyu know a mean o do that that thanks to a script or a shell... (1 Reply)
Discussion started by: Dark Angel
1 Replies
Login or Register to Ask a Question