Visit Our UNIX and Linux User Community


Conversion from Upper Case to Lower Case Condition based


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Conversion from Upper Case to Lower Case Condition based
# 1  
Old 07-08-2011
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 -->
Code:
fgrep "2000YUYU" /export/home/oracle/TST/data.dat | tr '[A-Z]' '[a-z]' > Buzz

The problem i am facing is this command only picks the data which matches the condition and writes into the file buzz.
I really needed the whole file with the changes .
Can Sed or awk needs to be used .

Below is the sample of the data file.
================================
Code:
Z03741                   67595                                                             1266767IUFIUFJJJ                                   aaaa bbbbb cccc dd. xxxxxxx                 aaaa bbb cccc, Inc.    Tst .                 Floor 2                                                               El Segundo                    847474     sdfd df jjdkdkd                   dfdfd ssdfsdfsdf                            CA                                                                                   
Z03741                   67595                                                             1220CNBT1


===================================

Thanks
B-

Last edited by Franklin52; 07-08-2011 at 04:03 PM.. Reason: Please use code tags
# 2  
Old 07-08-2011
to use the entire file, give tr the entire file.

Code:
tr '[A-Z]' '[a-z]' < /export/home/oracle/TST/data.dat > newfile

data.dat and newfile should not be the same file, tr doesn't edit in-place.
This User Gave Thanks to Corona688 For This Post:
# 3  
Old 07-08-2011
Show a sample of input and output.
# 4  
Old 07-08-2011
Is there a command that does edit in-place ?

Thanks
B-
# 5  
Old 07-08-2011
You will say i am nitpicking but using character class would make the code more reliable (avoid unexpected translation with some locale)

Code:
tr '[:upper:]' '[:lower:]' < /export/home/oracle/TST/data.dat > newfile

... by the way i don't know about your fgrep implementation, but i would bet there is the -i option available to make you grep ignore case .
so fgrep -i yuyu .... will grep any combination like
Code:
YuYu 
YUyu 
yuyU

... or whatever

Last edited by ctsgnb; 07-08-2011 at 02:55 PM..
This User Gave Thanks to ctsgnb For This Post:
# 6  
Old 07-08-2011
Quote:
Originally Posted by tsbiju
Is there a command that does edit in-place ?

Thanks
B-
Do you really want to edit in-place? If anything goes wrong you've destroyed your original, not a copy!

You can't just redirect into the same file you're reading from either, because you'd end up deleting the file before you even begin reading from it. Hence why this, and most shell utilities, don't edit in-place. Modifying the original is easy enough without that:
Code:
tr '[A-Z]' '[a-z]' < /export/home/oracle/TST/data.dat > /tmp/$$
cat /tmp/$$ > /export/home/oracle/TST/data.dat
rm /tmp/$$

'cat' is better than 'mv' for this because it won't ever alter data.dat's ownership or permissions.
# 7  
Old 07-08-2011
@Shamrock :

INPUT FILE (DATA.DAT)
=================
Code:
222222     1    A1B1         aaaaabbbbb          ccccccccc
333333     6    A2B2         xxxxxxyyyy            dddddddddd
555555          Q222         hdhdhdh3k3k          jvjvmvkfkfkfk

Code:
fgrep "A2B2" /export/home/oracle/TST/data.dat | tr '[a-z]' '[A-Z]' > Buzz

OUTPUT FILE (Buzz) from the above command
==================================
Code:
333333     6    A2B2         XXXXXYYYYY            DDDDDDDDDD


OUTPUT DESIRED
===========================================


Code:
222222     1    A1B1         aaaaabbbbb          ccccccccc
333333     6    A2B2         XXXXXYYYYY            DDDDDDDDDD
555555          Q222         hdhdhdh3k3k          jvjvmvkfkfkfk

Thanks
B-

Last edited by Franklin52; 07-08-2011 at 04:04 PM.. Reason: Please use code tags

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

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 . ; : ! ?I found the following command sed -i 's/\s*./\U&\E/g' $@ filenamebut... (7 Replies)
Discussion started by: georgi58
7 Replies

2. 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

3. 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

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

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

6. 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

7. UNIX for Dummies Questions & Answers

Lower Case > Upper Case

Hi, All - I have a script where I need to change the server name from "dallinux01" to "DALLINUX01" in multiple places. Can some one tell me a command that I can use for this? I played with the tr (translate) command but tr works byte by byte. Meaning that when I use the tr command all... (3 Replies)
Discussion started by: ora_umair
3 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

Featured Tech Videos