Change first letter of a word from lower case to upper case


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Change first letter of a word from lower case to upper case
# 1  
Old 10-20-2013
Change first letter of a word from lower case to upper case

Hi all,

I am trying to find a way to change first letter in a word from lower case to upper case. It should be done for each first word in text or in paragraph, and also for each word after punctuation like
Code:
. ; : ! ?

I found the following command

Code:
sed -i 's/[\.;:!?]\s*./\U&\E/g' $@ filename

but unfortunately it does not work.

Your help is greatly appreciated.
# 2  
Old 10-20-2013
Try

Sed

for each word

Code:
$ echo foo test | sed 's/\([a-z]\)\([a-zA-Z0-9]*\)/\u\1\2/g'
Foo Test

Awk

Code:
$ echo foo test  | awk '{$1=toupper(substr($1,0,1))substr($1,2)}1'
Foo test


Last edited by Akshay Hegde; 10-20-2013 at 11:03 AM..
This User Gave Thanks to Akshay Hegde For This Post:
# 3  
Old 10-20-2013
An approach using awk:
Code:
awk '
        {
                for ( i = 1; i <= NF; i++ )
                {
                        if ( i == 1 )
                                $i = sprintf ( "%s", toupper ( substr ( $i, 1, 1 ) ) substr ( $i, 2 ) )
                        if ( $i ~ /[.;:!?]/ )
                                $(i+1) = sprintf ( "%s", toupper ( substr ( $(i+1), 1, 1 ) ) substr ( $(i+1), 2 ) )
                }
                print
        }
' file

These 2 Users Gave Thanks to Yoda For This Post:
# 4  
Old 10-20-2013
Quote:
Originally Posted by Akshay Hegde
Try

Sed

for each word

Code:
$ echo foo test | sed 's/\([a-z]\)\([a-zA-Z0-9]*\)/\u\1\2/g'

Foo Test

Awk

Code:
$ echo foo test  | awk '{$1=toupper(substr($1,0,1))substr($1,2)}1'
Foo test

the first command changes every word in the text

second command change every first word in the paragraph but not after the specified punctuation
# 5  
Old 10-20-2013
Yeah for that you need to refer Yoda's solution
# 6  
Old 10-20-2013
Quote:
Originally Posted by Yoda
An approach using awk:
Code:
awk '
        {
                for ( i = 1; i <= NF; i++ )
                {
                        if ( i == 1 )
                                $i = sprintf ( "%s", toupper ( substr ( $i, 1, 1 ) ) substr ( $i, 2 ) )
                        if ( $i ~ /[.;:!?]/ )
                                $(i+1) = sprintf ( "%s", toupper ( substr ( $(i+1), 1, 1 ) ) substr ( $(i+1), 2 ) )
                }
                print
        }
' file

your code works great.
thank you very much
# 7  
Old 10-20-2013
i'm using this function to change the first letter of a word to caps:
Code:
Capitalize() { # STRING
# Makes first char capital
# by stevea & shorten by dd_wizard @ fedoraforum.org
   low=${1,,}
   echo ${low^}
}

Call it like:
Code:
echo $(Capitalize abc)

Hope this helps for re-usage, imho easier, though doesnt do parsings.

Last edited by sea; 10-20-2013 at 12:38 PM..
This User Gave Thanks to sea For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

To convert Lower case to Upper Case

There is a script where we pass the parameter in lower case: say: . ./scriptName pArameter #!/bin/ksh echo "`date` Entering $0 Reloading the $1 table " mname1=$1 (code to login MYSQL Database) Truncate table $mname1; exit ! Since now there is a limitaion of MYSQL that it accept... (5 Replies)
Discussion started by: ambarginni
5 Replies

2. Shell Programming and Scripting

converting to lower case or upper case

here is a code column_name="vivek" column_name2="ViVeK" column_name=$(echo $column_name | awk '{print tolower($0)}') column_name2=$(echo $column_name2 | awk '{print tolower($0)}') echo "column name 1 lower: $column_name" echo "column name... (6 Replies)
Discussion started by: vivek d r
6 Replies

3. Shell Programming and Scripting

Conversion from Upper Case to Lower Case Condition based

Hello Unix Gurus : It would be really appreciative if can find a solution for this . I have records in a file . I need to Capitalize the records based on condition . For Example i tried the following Command COMMAND --> fgrep "2000YUYU" /export/home/oracle/TST/data.dat | tr '' ''... (12 Replies)
Discussion started by: tsbiju
12 Replies

4. Shell Programming and Scripting

[Solved] Change Upper case to Lower case in C shell

Is there a command that can switch a character variable from UPPER case to lower case? like foreach AC ( ABC BCD PLL QIO) set ac `COMMAND($AC)` ... end Thanks a lot! (3 Replies)
Discussion started by: rockytodd
3 Replies

5. Shell Programming and Scripting

Convert to upper case first letter of each word in column 2

Hi guys, I have a file separated by ",". I´m trying to change to upper case the first letter of each word in column 2 to establish a standard format on this column. I hope somebody could help me to complete the SED or AWK script below. The file looks like this: (Some lines in column 2... (16 Replies)
Discussion started by: cgkmal
16 Replies

6. Shell Programming and Scripting

data array needs to change upper case to lower case

Hi all, i have a data array as followes. ARRAY=DFSG345GGG ARRAY=234FDFG090 ARRAY=VDFVGBGHH so on.......... i need all english letters to be change to lower case. So i am expecting to see ARRAY=dfsg345ggg ARRAY=234fdfg090 ARRAY=vdfvgbghh so on........ If i have to copy this data in... (8 Replies)
Discussion started by: usustarr
8 Replies

7. Shell Programming and Scripting

Script to Convert Upper case to Lower case

Hi All I have a script which extracts values from a Database (A persons name) and puts it into a variable in my script IE: $NAME However the Value in the DB is all in uppercase and contains the users first name and last name EG: > echo $NAME GRAHAM BOYLE > What I need is only the... (7 Replies)
Discussion started by: grahambo2005
7 Replies

8. Shell Programming and Scripting

convert upper case to lower case in ascript

I have a package to install and the installation script which does it . The files/directories names in the script are all lower case but the actual package has everything in upper case - file names, directories . I don't want to rename directories and files in the package - it has a lot of them . ... (2 Replies)
Discussion started by: vz6zz8
2 Replies

9. Shell Programming and Scripting

how to convert value in a variable from upper case to lower case

Hi, I have a variable $Ctrcd which contains country names in upper case and i want to convert them into lower case. I have tried so many solutions from already existing threads but couldn't get the correct one. Can anybody help me with this..... Thanks a lot.. (2 Replies)
Discussion started by: manmeet
2 Replies

10. UNIX for Dummies Questions & Answers

lower case to upper case string conversion in shell script

How can convert a Lower case variable value to an upper case in the kron shell script. (3 Replies)
Discussion started by: dchalavadi
3 Replies
Login or Register to Ask a Question