Change case preserving the same case


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Change case preserving the same case
# 1  
Old 05-18-2012
Change case preserving the same case

how can i do a case insensitive search/replace but keep the same case?

e.g., i want to change a word like

apple-pie to orange-cake

but for the first word if the first letter of the keyword or the letter after the - is capitalised i want to preserve that

e.g., if the before is:

Apple-pie

output should be:
Orange-cake

If the before is: Apple-Pie
output should be Orange-Cake

thanks
# 2  
Old 05-21-2012
Just need a little more info... what shell-tool or programming language are you intending to use for this?
This User Gave Thanks to otheus For This Post:
# 3  
Old 05-23-2012
bash
thanks Smilie
# 4  
Old 05-23-2012
It would help if you can provide a sample input, say about 10-20 lines from the original file (after blotting sensitive data) and desired output.
# 5  
Old 05-31-2012
E.g.,

Code:
Before After
--------------
emily-yellow.extension emily-yellow.anotherword.extension/possiblysomethingelse
Emily-yellow.extension Emily-yellow.anotherword.extension/possiblysomethingelse
emily-Yellow.extension emily-Yellow.anotherword.extension/possiblysomethingelse
Emily-Yellow.extension Emily-Yellow.anotherword.extension/possiblysomethingelse

Basically I want to preserve the case in the words
At least:
-the first letter in the entire keyword
-first letter after the -
-first letter of the extension


right now i'm writing the second keyword in lowercase in the see command but i want to keep it as the same case as the original. sometimes occurrences are the beginning of a sentence, some occurrences are not. if it is, i want to also be capitalised upon replacing

---------- Post updated at 12:23 AM ---------- Previous update was at 12:17 AM ----------

actually i have another problem

I'm doing something like

Code:
UPDATE $optionstable SET option_value = replace(option_value,"$BEFORE","$AFTER") WHERE wp_otpions.option_name = 'blogname';


but the problem is that this only replaces the specific case of "$BEFORE"

how can i make it case insensitive?
thanks

---------- Post updated at 12:51 AM ---------- Previous update was at 12:23 AM ----------

Okay, so this is what I'm trying now


blognamebefore = (i put in a sql command to grab the blog name)
This can be anything like "afdsdsfasdf BEFORE fafdsadffdsds"

then I'm trying to run a sed command that does a replace of the BEFORE keyword to the AFTER keyword

sed 's!${BEFORE}!${AFTER}!gI'


I want to preserve the case of the BEFORE word, at least the first letter would be good

how can I do this?



when I run the sed command, it changes the keyword into all lowercase letters

and I don't want to do this especially in the title

---------- Post updated at 12:55 AM ---------- Previous update was at 12:51 AM ----------

I think I managed something for now
I googled about how to use sed to capitalise the first letter of a word
then use that as my new keyword
# 6  
Old 05-31-2012
Your examples are unclear. It seems to me you asked for the ability to convert all characters to lowercase, except the first letter of each "word" is preserved. But your examples show the trivial case.

It seems to me this problem is too complex for sed/awk (without hard-coding the before/after values for each case). I think perl has an elegant solution:
Code:
perl -pe 's/(?<![a-zA-Z0-9])([a-zA-Z])([a-zA-Z0-9]*)/$1\L$2\E/g'

Before:
Code:
.TesT thIs-ThiNg Now

After:
Code:
.Test this-Thing Now

If you want to add your extension-appending code, it's pretty trivial to do that in perl. First, make sure this code will work for you.
Login or Register to Ask a Question

Previous Thread | Next Thread

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

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

4. Shell Programming and Scripting

sed ignoring case for search but respecting case for subtitute

Hi I want to make string substitution ignoring case for search but respecting case for subtitute. Ex changing all occurences of "original" in a file to "substitute": original becomes substitute Origninal becomes Substitute ORIGINAL becomes SUBSTITUTE I know this a little special but it's not... (1 Reply)
Discussion started by: kmchen
1 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. 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

8. Shell Programming and Scripting

Script needed to select and delete lower case and mixed case records

HELLO ALL, URGENTLY NEEDED A SCRIPT TO SELECT AND DELETE LOWER AND MIXED CASE RECORDS FROM A COLUMN IN A TABLE. FOR EXAMPLE : Table name is EMPLOYEE and the column name is CITY and the CITY column records will be: Newyork washington ... (1 Reply)
Discussion started by: abhilash mn
1 Replies

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