Replacing a single line with multiple lines in a file


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Replacing a single line with multiple lines in a file
# 1  
Old 03-11-2013
Replacing a single line with multiple lines in a file

Hi

Am confused with the usage of "sed" command

I want to replace a single line with multiple lines of a file..

eg.,
A file has
Code:
Hi, How are you?

I need to replace as
Code:
 Am fine
What are You doing?

I used the script as
Code:
string1="Hi, How are you?"
echo "$string1 is the value"
replace1="Am fine
What are you doing?"
echo "$replace1 is the value"
cat file | sed -e "s/$string1/$replace1/g" > file_new

Here the values of $string1 and $replace1 prints the value whereas in the sed command i get the error as
sed: 0602-404 Function cannot be parsed.

Please help whether my usage of sed command is correct.
If not, please suggest me how to replace the contents of file by using any other command, if the usage of sed command is not comfortable..
SmilieSmilie

Last edited by Priya Amaresh; 03-11-2013 at 08:17 AM..
# 2  
Old 03-11-2013
Code:
string1="Hi, How are you?"
echo "$string1 is the value"
replace1="Am fine\\
What are you doing?"
echo "$replace1 is the value"
cat file | sed -e "s/$string1/$replace1/g" > file_new

# 3  
Old 03-11-2013
This can be also done with awk command instead of sed..
Place the lines to be replaced in a file with name file.txt

cat file.txt
Code:
Am fine
What are you doing?

Instead of sed use the following:
Code:
awk '/Hi, How are you?/{system("cat file.txt");next}1' file > file_new

Now, the file_new contains the new replaced lines mentioned in file.txt..

Last edited by Priya Amaresh; 03-11-2013 at 07:35 AM..
# 4  
Old 03-11-2013
RedHat

Code:
string1="Hi, How are you?" 
echo "$string1 is the value" 
replace1="Am fine\nWhat are you doing?" 
echo "$replace1 is the value" 
sed -e "s/$string1/$replace1/g" file > file_new

this can be done in sed/awk/perl/python all of these, your question was for sed Smilie
This User Gave Thanks to sam05121988 For This Post:
# 5  
Old 03-11-2013
How about the following shell script, using sed:
Code:
string1="Hi, How are you?"
echo "Am fine" > temp.x
echo "What are you doing?" >> temp.x
sed -e "/$string1/r replace.txt" -e "//d" file > file_new
rm temp.x

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Multiple lines to single line

I have code as below # create temporary table `temp4277`(key(waybill_no)) select waybill_no,concat_ws('',card_type,card_series_no) cardinfo from rfid_temp_ticket where waybill_no='4277' group by... (4 Replies)
Discussion started by: kaushik02018
4 Replies

2. Shell Programming and Scripting

Coverting multiple lines to a single line

Hi all, I have a requirement to covert multiple lines in a comma delimited file to a single line through shell scripting. We should compare the data in the first column in each line. If it is same, then the other data should be put in the same line.Below is the sample input and expected output:... (4 Replies)
Discussion started by: Bobby_2000
4 Replies

3. Shell Programming and Scripting

Combine multiple lines into single line

Hi All , I have a file with below data # User@Host: xyz @ # Query_time: t1 Lock_time: t2 Rows_sent: n1 Rows_examined: n2 SET timestamp=1396852200; select count(1) from table; # Time: 140406 23:30:01 # User@Host: abc @ # Query_time: t1 Lock_time: t2 Rows_sent: n1 Rows_examined:... (6 Replies)
Discussion started by: rakesh_411
6 Replies

4. UNIX for Dummies Questions & Answers

Replacing 2 lines by single line

Hi I have a file with below content : a b S I need to replace the lines which have a and b continuously by d. d S I have used the below code tr '\n' '#'<file|sed. 's/a#b/d/g's?|tr '#' '\n' where # is not occurring anywhere in the file.. Is there any other efficient way to do this? ... (7 Replies)
Discussion started by: pandeesh
7 Replies

5. Shell Programming and Scripting

Multiple lines in a single column to be merged as a single line for a record

Hi, I have a requirement with, No~Dt~Notes 1~2011/08/1~"aaa bbb ccc ddd eee fff ggg hhh" Single column alone got splitted into multiple lines. I require the output as No~Dt~Notes 1~2011/08/1~"aaa<>bbb<>ccc<>ddd<>eee<>fff<>ggg<>hhh" mean to say those new lines to be... (1 Reply)
Discussion started by: Bhuvaneswari
1 Replies

6. Shell Programming and Scripting

replace (sed?) a single line/string in file with multiple lines (string) from another file??

Can someone tell me how I can do this? e.g: Say file1.txt contains: today is monday the 22 of NOVEMBER 2010 and file2.txt contains: the 11th month of How do i replace the word NOVEMBER with (5 Replies)
Discussion started by: tuathan
5 Replies

7. Shell Programming and Scripting

Multiple lines into a single line on Ubuntu 10.04

Hi, I've some files with the following data and i need to convert the lines between the separator ---, into a single line. I've tried with the paste cmd but my main problem is that the number of lines between the separator is not fix, it can vary between 1-4 lines. Input --- 2010-02-22... (8 Replies)
Discussion started by: RickyC9999
8 Replies

8. Shell Programming and Scripting

Multiple lines into a single line

Hi, I've some files with the following data and i need to convert the lines between the separator ---, into a single line. I've tried with the paste cmd but my main problem is that the number of lines between the separator is not fix, it can very between 1-4 lines. Input --- 2010-02-22... (4 Replies)
Discussion started by: RickyC9999
4 Replies

9. Shell Programming and Scripting

replacing multiple lines with single line

Can any one give me the idea on replacing multiple blank lines with a single blank line? Please conside it for a file having more than 100 number of characters. Regards, Siba (3 Replies)
Discussion started by: siba.s.nayak
3 Replies

10. Shell Programming and Scripting

Splitting a single line into multiple lines

I have a case where, I need to look into a file. Go to each line of the file, find the length of the line, if the length of the line is more than 75 chars, I need to split the line into multiple lines of 75chars max. If the length of the line is less than 75, we need not do anything. So at the... (4 Replies)
Discussion started by: thanuman
4 Replies
Login or Register to Ask a Question

Featured Tech Videos