Replace string in vi


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Replace string in vi
# 1  
Old 08-24-2011
Replace string in vi

Hello,
Need vi script.
file:
Code:
dog1!cat!
dog2!bird!
dog1!fish!
dog2!lion!
...

expected:
Code:
dog1!bird!
dog2!NULL!
dog1!lion!
dog2!NULL!
...

Need replace from dog2!"word"! to dog1!"word"! and write in dog2!NULL! and the same logic for all strings where are dog1 and dog2

Any idea?

thanks

Last edited by pludi; 08-24-2011 at 05:24 AM..
# 2  
Old 08-24-2011
In the ":" mode:
Code:
%s/dog2!.*/dog2!NULL!/

# 3  
Old 08-24-2011
Quote:
Originally Posted by bartus11
In the ":" mode:
Code:
%s/dog2!.*/dog2!NULL!/

with your script result are:
dog1!cat!
dog2!NULL!
dog1!fish!
dog2!NULL!

but my expected result are from:
dog1!cat!
dog2!bird!
dog1!fish!
dog2!lion!
...
to:
dog1!bird!
dog2!NULL!
dog1!lion!
dog2!NULL!
...
do you see differences?

thanks
# 4  
Old 08-24-2011
Try:
Code:
%s/dog1.*\ndog2!\(.*\)/dog1!\1\rdog2!NULL!/


Last edited by bartus11; 08-24-2011 at 05:40 AM..
This User Gave Thanks to bartus11 For This Post:
# 5  
Old 08-24-2011
Quote:
Originally Posted by bartus11
Try:
Code:
%s/dog1.*\ndog2!\(.*\)/dog1!\1\rdog2!NULL!/


Results:
dog1!cat!
dog2!bird!
dog1!fish!
dog2!lion!

substitute pattern match failed

Any idea?

Last edited by aaruncee; 08-24-2011 at 06:41 AM..
# 6  
Old 08-24-2011
I guess you are using original "vi", not "vim" on which I tested this command... Does it have to be done in vi? If not, you can try something like this:
Code:
perl -p0e 's/dog1.*\ndog2(.*)/dog1\1\ndog2!NULL!/g' file

This User Gave Thanks to bartus11 For This Post:
# 7  
Old 08-24-2011
Quote:
Originally Posted by bartus11
I guess you are using original "vi", not "vim" on which I tested this command... Does it have to be done in vi? If not, you can try something like this:
Code:
perl -p0e 's/dog1.*\ndog2(.*)/dog1\1\ndog2!NULL!/g' file


Yes, it have to be done in vi.

thanks
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Search partial string in a file and replace the string - UNIX

I have the below string which i need to compare with a file and replace this string in the file which matches closely. Can anyone help me on this. string(Scenario 1)- user::r--,user::ourfrd:r-- String(Scenario 2)- user::r-- File **** # file: /local/Desktop/myfile # owner: me # group:... (6 Replies)
Discussion started by: sarathy_a35
6 Replies

2. Shell Programming and Scripting

Replace string in XML file with awk/sed with string from another

Sorry for the long/weird title but I'm stuck on a problem I have. I have this XML file: </member> <member> <name>TransactionID</name> <value><string>123456789123456</string></value> </member> <member> <name>Number</name> ... (9 Replies)
Discussion started by: cozzin
9 Replies

3. UNIX for Dummies Questions & Answers

Search for a string,delete the line and replace with new string in a file

Hi Everyone, I have a requirement in ksh where i have a set of files in a directory. I need to search each and every file if a particular string is present in the file, delete that line and replace that line with another string expression in the same file. I am very new to unix. Kindly help... (10 Replies)
Discussion started by: Pradhikshan
10 Replies

4. Shell Programming and Scripting

HPUX find string in directory and filetype and replace string

Hi, Here's my dilemma. I need to replace the string Sept_2012 to Oct_2012 in all *config.py files within the current directory and below directories Is this possible? Also I am trying to find all instances of the string Sept_2012 within files in the current directory and below I have... (13 Replies)
Discussion started by: pure_jax
13 Replies

5. Shell Programming and Scripting

sed or awk command to replace a string pattern with another string based on position of this string

here is what i want to achieve... consider a file contains below contents. the file size is large about 60mb cat dump.sql INSERT INTO `table1` (`id`, `action`, `date`, `descrip`, `lastModified`) VALUES (1,'Change','2011-05-05 00:00:00','Account Updated','2012-02-10... (10 Replies)
Discussion started by: vivek d r
10 Replies

6. Shell Programming and Scripting

replace (sed?) a string in file with multiple lines (string) from variable

Can someone tell me how I can do this? e.g: a=$(echo -e wert trewt ertert ertert ertert erttert erterte rterter tertertert ert) How do i replace the STRING with $a? I try this: sed -i 's/STRING/'"$a"'/g' filename.ext but this don' t work (2 Replies)
Discussion started by: jforce
2 Replies

7. Shell Programming and Scripting

Using sed to replace a string in file with a string in a variable that contains spaces

Hi, i call my shell like: my_shell "my project name" my script: #!/bin/bash -vx projectname=$1 sed s/'PROJECT_NAME ='/'PROJECT_NAME = '$projectname/ <test_config_doxy >temp cp temp test_config_doxy the following error occurres: sed s/'PROJECT_NAME ... (2 Replies)
Discussion started by: vivelafete
2 Replies

8. Shell Programming and Scripting

awk - replace number of string length from search and replace for a serialized array

Hello, I really would appreciate some help with a bash script for some string manipulation on an SQL dump: I'd like to be able to rename "sites/WHATEVER/files" to "sites/SOMETHINGELSE/files" within the sql dump. This is quite easy with sed: sed -e... (1 Reply)
Discussion started by: otrotipo
1 Replies

9. Shell Programming and Scripting

Search, replace string in file1 with string from (lookup table) file2?

Hello: I have another question. Please consider the following two sample, tab-delimited files: File_1: Abf1 YKL112w Abf1 YAL054c Abf1 YGL234w Ace2 YKL150w Ace2 YNL328c Cup9 YDR441c Cup9 YDR442w Cup9 YEL040w ... File 2: ... ABF1 YKL112W ACE2 YLR131C (9 Replies)
Discussion started by: gstuart
9 Replies

10. UNIX for Dummies Questions & Answers

Search for a string and replace the searched string in the same position in samefile

Hi All, My requisite is to search for the string "0108"(which is the year and has come in the wrong year format) in a particular column say 4th column in a tab delimited file and then replace it with 2008(the correct year format) in the same position where 0108 was found in the same file..The... (27 Replies)
Discussion started by: ganesh_248
27 Replies
Login or Register to Ask a Question