Visit Our UNIX and Linux User Community


Search a string in the file and then replace another string after that position


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Search a string in the file and then replace another string after that position
# 1  
Old 06-10-2011
Search a string in the file and then replace another string after that position

Hi
I am looking for a particular string in a file.If the string exists, then I want to replace another string with some other text.Once replaced, search for the same text after that character position in the file. Smilie

E.g: Actual File content:

Code:
Hello
Name: Nitin Raj
Welcome to Unix World.
This is very helpful
.
.
.
Hello
Name:Dashing
This is nice forum.

Expected File content: Search for Hello and replace next(only one) NAME: With IDENTITY and then again search for Hello

Code:
Hello
IDENTITY: Nitin Raj
Welcome to Unix World.
This is very helpful
.
.
.
Hello
IDENTITY:Dashing
This is nice forum.

Thanks in advance.

Last edited by pludi; 06-10-2011 at 05:53 AM..
# 2  
Old 06-10-2011
Code:
% cat testfile
Hello
Name: Nitin Raj
Welcome to Unix World.
This is very helpful
.
.
.
Hello
Name: ?ashing
This is nice forum.

% cat testfile | sed '/Hello/ n; s/Name/IDENTITY/'
Hello
IDENTITY: Nitin Raj
Welcome to Unix World.
This is very helpful
.
.
.
Hello
IDENTITY: ?ashing
This is nice forum.

# 3  
Old 06-10-2011
another one

Code:
awk '/Hello/{getline x;sub("Name","IDENTITY",x);print $0 RS x;next}1' infile

Code:
awk '/Hello/{print;getline;sub("Name","IDENTITY");print;next}1' infile

That last one also works if the first "Name:" occurrence appears in any subsequent line to the "Hello" line and not necessary the line just after the "Hello" one:
Code:
awk '/Hello/{x++}x{sub("Name","IDENTITY")&&x++&&x=(x==2)?0:x}1' infile

This User Gave Thanks to ctsgnb For This Post:
# 4  
Old 06-10-2011
@ctsgnb : Thank you very much.I tried the last one you suggested and it worked fine for me. Smilie

@yazu: Thanks for the quick reply.However I wanted to change just the next occurrence of the string after "SEARCH" string is found.In the one you suggested , it is changing all the occurrence.However still it was helpful. Smilie
# 5  
Old 06-10-2011
Quote:
Originally Posted by yazu
Code:
% cat testfile | sed '/Hello/ n; s/Name/IDENTITY/'

Quote:
Originally Posted by dashing201
@yazu: Thanks for the quick reply.However I wanted to change just the next occurrence of the string after "SEARCH" string is found.In the one you suggested , it is changing all the occurrence.However still it was helpful. Smilie
He should have grouped the commands:
Code:
sed '/Hello/ {n; s/Name/IDENTITY/;}'

And judging from the sample data, it'd be a good idea to anchor the regular expressions to the beginning of the line.

Regards,
Alister
This User Gave Thanks to alister For This Post:
 

Previous Thread | Next Thread
Test Your Knowledge in Computers #88
Difficulty: Easy
PowerShell makes use of pipes.
True or False?

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. UNIX for Dummies Questions & Answers

How do I replace a string in file that is in a certain position with spaces?

I am trying to replace the string in position 26 through 35 of the data file with 10 spaces and I want the remaining file to stay as is, the record length is over 900 characters? I am trying to use the AWK and substr but I am not getting it formatted correctly. Before... (6 Replies)
Discussion started by: fnwine1500
6 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

Search for a string at a particular position and replace with blank based on position

Hi, I have a file with multiple lines(fixed width dat file). I want to search for '02' in the positions 45-46 and if available, in that lines, I need to replace value in position 359 with blank. As I am new to unix, I am not able to figure out how to do this. Can you please help me to achieve... (9 Replies)
Discussion started by: Pradhikshan
9 Replies

5. Shell Programming and Scripting

Search string at a particular position in a file

Hi, i have a text file as : abc 0 1 Pass hjk 1 1 Pass bhk 0 0 Fail jjh 8 2 Pass nkji 0 1 Pass Now I want to check that if 1st column is jjh , then , store the value of 3rd string of that line in a variable. Hence, 2... (8 Replies)
Discussion started by: Anamika08
8 Replies

6. Shell Programming and Scripting

Search a string in a text file and add another string at the particular position of a line

I am having a text file which is having more than 200 lines. EX: 001010122 12000 BIB 12000 11200 1200003 001010122 2000 AND 12000 11200 1200003 001010122 12000 KVB 12000 11200 1200003 In the above file i want to search for string KVB and add/replace... (1 Reply)
Discussion started by: suryanarayana
1 Replies

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

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

9. Shell Programming and Scripting

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

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..The issue is the last... (15 Replies)
Discussion started by: ganesh_248
15 Replies

10. Shell Programming and Scripting

Find the position of a string and replace with another string

Hi, I have a file named "Test_2008_01_21" The file contains a string "manual" that occurs many times in the file How can i find the positions of the string "manual" in the file Ex: if the string " manual " occurs three times in the file. i want to replace the second occurance of string... (6 Replies)
Discussion started by: bab123
6 Replies

Featured Tech Videos