 MaxoYour tax dollars at work.Premium,VIP join:2002-11-04 Tallahassee, FL | reply to pflog
Re: Make variables uppercase in bash. 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. |
|
 pflogBueller? Bueller?Premium,MVM join:2001-09-01 El Dorado Hills, CA kudos:3 | oh ok! cool, should do the trick.  |
|
 MaxoYour tax dollars at work.Premium,VIP join:2002-11-04 Tallahassee, FL | 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:
if [ "${LINE}" = "amico.990120" ]; then
echo Building amic control file for ${LINE}
echo LOAD DATA > file_loader.ctl
echo INFILE \'${LINE}\' >> file_loader.ctl
echo APPEND >> file_loader.ctl
echo INTO TABLE schema.table >> file_loader.ctl
echo "(" >> file_loader.ctl
echo " column1(1:2)," >> file_loader.ctl
echo " column2(3:4)," >> file_loader.ctl
echo " column3 CONSTANT '" ${LINE:4:1} | tr 'a-z' 'A-Z' "'," >> file_loader.ctl
echo ")" >> file_loader.ctl
sqlldr user/pass@database file_loader.ctl log=sqlldr.log silent=FEEDBACK
else
echo No Amic file found
fi
done < myAmicFiles
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 |
|
 pflogBueller? Bueller?Premium,MVM join:2001-09-01 El Dorado Hills, CA kudos:3 | Looks like a good place for a perl script.  |
|
 MaxoYour tax dollars at work.Premium,VIP join:2002-11-04 Tallahassee, FL | said by pflog: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.  |
|
 pflogBueller? Bueller?Premium,MVM join:2001-09-01 El Dorado Hills, CA kudos:3 | said by Maxo:said by pflog: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 |
|
 pflogBueller? Bueller?Premium,MVM join:2001-09-01 El Dorado Hills, CA kudos:3 | 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 |
|
 pflogBueller? Bueller?Premium,MVM join:2001-09-01 El Dorado Hills, CA kudos:3 | 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 |
|
 MaxoYour tax dollars at work.Premium,VIP join:2002-11-04 Tallahassee, FL | 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. |
|