Solved

lowerCase to Uppercase

Posted on 2000-02-15
12
138 Views
Last Modified: 2010-03-05
How to use the s/// operator and substitute the words in the line beginning with lowercase to uppercase.
I guess it should be in some of the books but I think I missed it somehow.
0
Comment
Question by:sstouk
  • 5
  • 2
  • 2
  • +2
12 Comments
 
LVL 4

Expert Comment

by:dda
ID: 2525645
Possible solution, may be not the better one:

$var =~ s/^(.)/\u$1/;
0
 
LVL 4

Expert Comment

by:dda
ID: 2525660
sstouk, please ignore my previous comment, it will replace only the first char of the line. More likely you want the following:

$var =~ s/^(\w+)/\U$1/g;

0
 
LVL 84

Expert Comment

by:ozo
ID: 2526004
I'm not sure I understand what you mean.  
Do you want to substutute only the beginning letter of each word?
or do you want to substitute the entire word depending on the case of its beginning letter?
0
 
LVL 5

Expert Comment

by:amitpagarwal
ID: 2526500
you need to read one file and write it to another file. Both things can't be done at the same time.

open (readingfile)
open (writingfile)

read one line of readingfile in $line

$line =~ tr/^[A..Z]/[a..z]/

print $line in writingfile

- Thanks

0
 
LVL 6

Author Comment

by:sstouk
ID: 2527118
Adjusted points to 75
0
 
LVL 6

Author Comment

by:sstouk
ID: 2527119
I need not the tr/// operator to do it, but the s/// operator as stated in the question.

Example:
Input:
"this Is the _line with_Some lower Case.rar"
Output:
"This_Is_The_Line_With_Some_Lower_Case.rar"

That's what I try to archieve.
I have a script that can substitute the spaces in the filename to the underscores and substitute the unaccepted charachters, but I need also to make the beginning of each word in the filename as Uppercase.

I tested dda's coment and it only replaces the first word completely to uppercase.

I don't need the tr/// operator as there are some "(,),-,_ in the beginning of words and I need only forst letters of each word to be uppercase.
0
IT, Stop Being Called Into Every Meeting

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

 
LVL 5

Accepted Solution

by:
thoellri earned 70 total points
ID: 2527434
You could use this:

$string="this Is the _line with_Some lower Case.rar";
$string=~s/(\w+)/ucfirst($1)/eg;
print $string,"\n";

however "_" is considered a word character and I think you only want alpha-characters, so use:

$string=~s/([A-Z]+)/ucfirst($1)/egi;


hope this helps
  Tobias
0
 
LVL 6

Author Comment

by:sstouk
ID: 2527489
Perfect Answer!

Thank You very much!
0
 
LVL 6

Author Comment

by:sstouk
ID: 2527521
I tested it and it works OK as this:
$string=~s/([A-Z]+)/ucfirst($1)/egi;


and as this:
$string=~s/([a-z]+)/ucfirst($1)/eg;


0
 
LVL 5

Expert Comment

by:thoellri
ID: 2527527
errr - thanks, and you second solution is the "perfect" answer. What did I think when i posted mine?

Too early in the morning :-)
  Tobias
0
 
LVL 84

Expert Comment

by:ozo
ID: 2528760
#That would capitalise the .Rar, which sstouk's example did not want.
#(you also don't need the /e)
$string=~s/([a-z.]+)/\u$1/gi;

0
 
LVL 6

Author Comment

by:sstouk
ID: 2528918
I admit the ozo's answer worked from the first time as I don't have to make several s/// operator lines for files with the Absolute Path.
The first suggestion would do OK though and as a compensation for a better option here's the link
http://24.112.136.42
With the result of your suggestions in work.
please don't break my computer. I have just started studying Perl.
 :)
0

Featured Post

Do You Know the 4 Main Threat Actor Types?

Do you know the main threat actor types? Most attackers fall into one of four categories, each with their own favored tactics, techniques, and procedures.

Join & Write a Comment

Suggested Solutions

I've just discovered very important differences between Windows an Unix formats in Perl,at least 5.xx.. MOST IMPORTANT: Use Unix file format while saving Your script. otherwise it will have ^M s or smth likely weird in the EOL, Then DO NOT use m…
A year or so back I was asked to have a play with MongoDB; within half an hour I had downloaded (http://www.mongodb.org/downloads),  installed and started the daemon, and had a console window open. After an hour or two of playing at the command …
Explain concepts important to validation of email addresses with regular expressions. Applies to most languages/tools that uses regular expressions. Consider email address RFCs: Look at HTML5 form input element (with type=email) regex pattern: T…
Internet Business Fax to Email Made Easy - With eFax Corporate (http://www.enterprise.efax.com), you'll receive a dedicated online fax number, which is used the same way as a typical analog fax number. You'll receive secure faxes in your email, fr…

706 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

16 Experts available now in Live!

Get 1:1 Help Now