Search:  

 
 
   All ForumsHot TopicsGallery






how-to block ads


 
Forums » Tech and Talk » OS and Software » All Things Unix » Make variables uppercase in bash.
Search Topic:
Uniqs:
1645
Share Topic:
RSS topic:
toggle:
flat / full
normal / watch
Posting:
Post a:
Post a:
Sendmail Config... »
« Grub Question.  
AuthorAll Replies
-


nixen
Rockin' the Boxen
Premium
join:2002-10-04
Alexandria, VA
·Cox HSI
·Speakeasy


1 edit
reply to Maxo
Re: Make variables uppercase in bash.

said by Maxo See Profile :

I've never used sed before and have only recently began reading up on regular expressions.
I read through the man pages and looked at the code you gave. It appears to work with the following code:

The only thing that is missing is how to take the result of this output and store it in a variable.


Or even:
--
The trouble with the world is that the stupid are cocksure and the intelligent are full of doubt. -- Bertrand Russell


Sir Meowmix III

reply to Maxo
Glad to help Maxo. Feel free to ask for help anytime you get stuck.


Maxo
Your tax dollars at work.
Premium,VIP
join:2002-11-04
Tallahassee, FL
clubs:

reply to Sir Meowmix III
said by Sir Meowmix III :

[code]
MYVAR=$(echo $LINE | sed 's/o\./O\./g' | sed 's/i\./I\./g')

echo $MYVAR
[/code]
That did it. Thanks a lot. You can probably tell that we just started learning how to write these scripts a few weeks ago.


Sir Meowmix III

reply to Maxo


Maxo
Your tax dollars at work.
Premium,VIP
join:2002-11-04
Tallahassee, FL
clubs:

reply to Sir Meowmix III
I've never used sed before and have only recently began reading up on regular expressions.
I read through the man pages and looked at the code you gave. It appears to work with the following code:

The only thing that is missing is how to take the result of this output and store it in a variable.

--
"Padre, nobody said war was fun now bowl!" - Sherman T Potter

»www.cafepress.com/maxolasersquad

»maxolasersquad.com/

»maxolasersquad.com/network/ My DSL Network Guide

»myspace.com/mlsquad


Maxo
Your tax dollars at work.
Premium,VIP
join:2002-11-04
Tallahassee, FL
clubs:
reply to deblin
the_char=`echo ${LINE:4:1} | tr a-z A-Z`
The above line just returns the given string literal, not the results of the echo.


Sir Meowmix III

@windstream.net
reply to Maxo
Agree, good call, at that point the regex would be positional on the file extension.


deblin
Dark Side of the Moon
Premium,MVM
join:2001-09-01
Middletown, DE

reply to Sir Meowmix III
said by Sir Meowmix III :

What about using sed?

s/i/I/g s/o/O/g
Good call, that'd work, if he anchor'd it to the ".", e.g.:

bash code:
... | sed 's/o\./O./g' | sed 's/i\./I\./g'

--
He who is not contented with what he has, would not be contented with what he would like to have. -Socrates


Sir Meowmix III

@windstream.net
reply to Maxo
What about using sed?

s/i/I/g s/o/O/g


deblin
Dark Side of the Moon
Premium,MVM
join:2001-09-01
Middletown, DE

reply to Maxo
Probably the easiest thing to do would be to set a variable for the letter first, then just use that variable.

e.g instead of:

bash code:
echo " column3 CONSTANT '" ${LINE:4:1} | tr 'a-z' 'A-Z' "'," >> file_loader.ctl

try:

bash code:
the_char=`echo ${LINE:4:1} | tr a-z A-Z`
echo " column3 CONSTANT '$the_char'," >> file_loader.tcl

Again, assuming you just want the O there and not the full name. If you want the full name, it'd be slightly more involved but not terribly so.

--
He who is not contented with what he has, would not be contented with what he would like to have. -Socrates


deblin
Dark Side of the Moon
Premium,MVM
join:2001-09-01
Middletown, DE

reply to Maxo
So in this line:

quote:
echo " column3 CONSTANT '" ${LINE:4:1} | tr 'a-z' 'A-Z' "'," >> file_loader.ctl

You want just the capital letter?

E.g. for LINE = amico.990120 you want just the O?

Or do you want amicO.990120 ?
--
He who is not contented with what he has, would not be contented with what he would like to have. -Socrates


deblin
Dark Side of the Moon
Premium,MVM
join:2001-09-01
Middletown, DE

reply to Maxo
said by Maxo See Profile :

said by deblin See Profile :

Looks like a good place for a perl script.
If you knew what Perl and I had been through the last two and a half weeks you wouldn't joke like that.
heh! ok, well let me take a look.
--
He who is not contented with what he has, would not be contented with what he would like to have. -Socrates


Maxo
Your tax dollars at work.
Premium,VIP
join:2002-11-04
Tallahassee, FL
clubs:

reply to deblin
said by deblin See Profile :

Looks like a good place for a perl script.
If you knew what Perl and I had been through the last two and a half weeks you wouldn't joke like that.


deblin
Dark Side of the Moon
Premium,MVM
join:2001-09-01
Middletown, DE
reply to Maxo
Looks like a good place for a perl script.


Maxo
Your tax dollars at work.
Premium,VIP
join:2002-11-04
Tallahassee, FL
clubs:

reply to deblin
I think I may need to be a little more specific. We are writing a bash script that reads some stuff and builds a control file for Oracle's sqlldr, and then we execute sqlldr with the build control file. Our code looks much like this:

The myAmicFiles just looks like this:
amici.990120
amici.990220
amico.990520
amico.990620

I need the i or o to be uppercase.

--
"Padre, nobody said war was fun now bowl!" - Sherman T Potter

»www.cafepress.com/maxolasersquad

»maxolasersquad.com/

»maxolasersquad.com/network/ My DSL Network Guide

»myspace.com/mlsquad


deblin
Dark Side of the Moon
Premium,MVM
join:2001-09-01
Middletown, DE
reply to Maxo
oh ok! cool, should do the trick.


Maxo
Your tax dollars at work.
Premium,VIP
join:2002-11-04
Tallahassee, FL
clubs:
reply to deblin
All the examples of tr that I saw had to take files. I didn't think about using pipes. I think that should work. I'll try it and let you know.


deblin
Dark Side of the Moon
Premium,MVM
join:2001-09-01
Middletown, DE

reply to Maxo
I suppose you can't use tr?

echo ${var:2:1} | tr 'a-z' 'A-Z'

would work, but I take it you want to avoid using tr?
--
He who is not contented with what he has, would not be contented with what he would like to have. -Socrates


Maxo
Your tax dollars at work.
Premium,VIP
join:2002-11-04
Tallahassee, FL
clubs:

I am trying to take part of a string and make it uppercase. For example:
export var='abcdefg'
echo ${var:2:1}

With the exception that I need this to return 'C', not 'c'. The only thing I have been able to find are commands that take a whole file as a parameter and makes it all uppercase. Can anyone help me do this please?
Forums » Tech and Talk » OS and Software » All Things UnixSendmail Config... »
« Grub Question.  


Saturday, 05-Dec 13:04:32 Terms of Use | Privacy Policy | Hosting by www.nac.net - DSL,Hosting & Co-lo | feedback | contact
over 10 years online! © 1999-2009 dslreports.com.
page compression OFF
Most commented news this week
· [163] Comcast Releasing Promised Usage Meter
· [147] Avast Antivirus Has Gone Mad
· [126] Comcast Makes NBC Universal Acquisition Official
· [104] Graduate Student Unveils Sprint's GPS Sharing With Feds
· [101] Google Invades ISP, OpenDNS Turf With Google Public DNS
· [95] The Bandwidth Hog Does Not Exist
· [85] FCC Ponders Moving From PSTN To IP Voice
· [81] Latest Consumer Reports Survey Not Kind To AT&T
· [79] New Bill Aims To Limit ETFs
· [74] Sprint Defuses GPS Privacy Media Bomb
Most people now reading
· False positive in Avast! or is it real? [Security]
· Wife might have to work in.... Iowa for a few months!!! [General Questions]
· Windows 7 boot manager editing questions [Microsoft Help]
· UPS - What do you people think happened? [General Questions]
· DNS options, what are YOU using? [TekSavvy]
· Can I put insulation behind wires from panel? [Home Repair & Improvement]
· What is the spell hit cap for a lvl 80 full arcane spec mage [World of Warcraft]
· 3.x Feral Druid - Bear Tanking Guide [World of Warcraft]
· Connecting to Google Voice Via SIP [VOIP Tech Chat]
· [DNS] DNS by router, or by pc? [Comcast HSI]