Tough Substituion command


 
Thread Tools Search this Thread
Top Forums UNIX for Advanced & Expert Users Tough Substituion command
# 1  
Old 09-07-2008
Tough Substituion command

I have lines like:

Mg2.qns W=0.175u
Mg2.qpsb W=0.175u
Mg4.qns W=0.175u
Mg4.qpsb W=0.175u

Which I need to become:
Mg2.qns W=wmg2qns
Mg2.qpsb W=wmg2qpsb
Mg4.qns W=wmg4qns
Mg4.qpsb W=wmg4qpsb

To acheive this individually line by line I use a command like:
:g/Mg2\.qns/s/W=.*/W=wmg2qns/

However I wish to acheive this for all lines in one command

I can find all the lines containing the concerned words by using:

:g/Mg[24]\.q[np]s/s/??????????????????????

I do not know how to fill up the second part of the command represented by question marks. Any idea?
# 2  
Old 09-07-2008
Quote:
Originally Posted by ggggdddd
I have lines like:

Mg2.qns W=0.175u
Mg2.qpsb W=0.175u
Mg4.qns W=0.175u
Mg4.qpsb W=0.175u

Which I need to become:
Mg2.qns W=wmg2qns
Mg2.qpsb W=wmg2qpsb
Mg4.qns W=wmg4qns
Mg4.qpsb W=wmg4qpsb

To acheive this individually line by line I use a command like:
:g/Mg2\.qns/s/W=.*/W=wmg2qns/

However I wish to acheive this for all lines in one command

I can find all the lines containing the concerned words by using:

:g/Mg[24]\.q[np]s/s/??????????????????????

I do not know how to fill up the second part of the command represented by question marks. Any idea?
Not clear why there's a colon at the start; is this vim? Here's how to do it in vim:
Code:
:%s/Mg\([24]\).\(q[np]s[b]?\) W=0\.175u/Mg\1.\2 W=wmg\1\2/g

# 3  
Old 09-07-2008
Quote:
Originally Posted by BMDan
Not clear why there's a colon at the start; is this vim? Here's how to do it in vim:
Code:
:%s/Mg\([24]\).\(q[np]s[b]?\) W=0\.175u/Mg\1.\2 W=wmg\1\2/g

Thanks!
I am using Vi.
I tried using the command but it did not execute. (Even tried in vim)
I tried searching for
/Mg\([24]\).\(q[np][as]\)

and it could find all the lines.

But when I search for

/Mg\([24]\).\(q[np][as][b]?\) It cannot find anything. How can I make the presence of that last charachter b optional in the substitution command?

One more question: How do I substitute in case I have some charachters in between Mg...... and W=175u like below. These in between charachters should not be disturbed.


Mg2.qns A B C L=123u W=0.175u
Mg2.qpsb DE 12 c1 L=123u W=0.175u
Mg4.qns M N O W=0.175u
Mg4.qpsb W=0.175u

Last edited by ggggdddd; 09-08-2008 at 12:06 AM.. Reason: More details added
# 4  
Old 09-08-2008
Code:
sed 's/\(.*\)\.\(.*\) W=\(.*\)./\1.\2 W=w\1\2/' filename

Login or Register to Ask a Question

Previous Thread | Next Thread

8 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Bad substituion error : Dont understand why

Hi Folks - I'm getting the following error message when executing my script: $ chmod +x Winexe_Admin.sh $ ./Winexe_Admin.sh Script Name: Winexe_Admin.sh Script Name without EXT: Winexe_Admin ./Winexe_Admin.sh: line 43: ${_MAINPATH}${_LOGPATH}${LOGPATH$}${_YEAR}_${_MONTH}${_DAY}: bad... (2 Replies)
Discussion started by: SIMMS7400
2 Replies

2. Shell Programming and Scripting

Variable in awk substituion

I have a file with 20 blank spaces. I want to substitute each blank space for a string, and part of that string should include an incremental number Code while read line3 do awk -v var=${line3} '{i=var; sub("^]*$", "\\&\n@target G0.S"'$i'"\n@type xy"); print $0}'... (1 Reply)
Discussion started by: chrisjorg
1 Replies

3. Shell Programming and Scripting

A very tough exercise

hello everyone!:) I have an exercise which I think is difficult for beginner like me. Here is the exercise Create a shell script, which takes a directory as command line argument. Script displays ten first lines from every text file in that directory. After displaying the lines from the... (1 Reply)
Discussion started by: googlevn
1 Replies

4. UNIX for Advanced & Expert Users

Tough Oracle Logic in Ux

How Can this logic be implemented in Unix SELECT B.SERVICE_TYPE || '|' || B.TOTAL_TYPE || '|' || B.CALL_INDICATOR || '|' || B.A_NUMBER || '|' || B.APN || '|' || B.DAY || '|' || B.HOUR ||... (3 Replies)
Discussion started by: magedfawzy
3 Replies

5. UNIX for Dummies Questions & Answers

tough parsing

I have a string as "Period= 20090531 Client Name= Clayton Lumbar Company Destination= MD" I want to parse the string and store it in 3 different variables. $period (should get value 20090531) $client (should get value "Clayton Lumbar company") $dest (should get value MD) How can I do... (3 Replies)
Discussion started by: paruthiveeran
3 Replies

6. Solaris

bad substituion error

Dear All i am getting "bad substituion" error in the follwing piece of code when i run from crontab.however it works if i run directly from my machine. #!/bin/bash for i in `cat abc` do part1=${i:0:12} ; part2=${i:13:27} ; echo "$part1,$part2">> def done (1 Reply)
Discussion started by: asadlone
1 Replies

7. Shell Programming and Scripting

Perl Arrays and Substituion

@xray =~ s/^ *//g; @xray =~ s/ *$//g; @xray =~ s/\s+/ /g; Guess I have a two part question ... First Is there a way to make substitutions, remove leading spaces, trailing spaces, and crunch multiple spaces into a single space, to the entire array, or must the substitutions be done on on... (1 Reply)
Discussion started by: popeye
1 Replies

8. Shell Programming and Scripting

Env Variable substituion in Sed (-s option)

Folks, I've been trying to use the ENV variable with slashes(/) in its value inside the sed substitution.. Sed 's/myval/'$MYVAL'/' file1 >> file.tmp If MYVAL=<sometext>, it works. if MYVAL=/home/venkat, it doesnt. *************************** bash-2.05$ export VAL=/home/venkat... (5 Replies)
Discussion started by: gvsreddy_539
5 Replies
Login or Register to Ask a Question