sed to find replace mutliline text


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting sed to find replace mutliline text
# 1  
Old 10-29-2009
sed to find replace mutliline text

Hi,

My input file
Code:
form 1
fill 2
fill 3
form 4
fill 5
form 6
fill 7
form 8


Now i need to substiute according to the fill.
form followed by single fill need to be replced with category 1
form with above and below fill need to be repalced with category 2

Desired output:

Code:
category1  1
category2  4
category2  6
category1  8

I tried like

Code:
awk '{print $1}' input_file | sed -e 's/form\\nfill/category1/g' -e 's/fill\\nform\\nfil/category2/g'

But it doesnot worked. anybody have answer..

Thanks in advance,
Vasanth
# 2  
Old 10-29-2009
Try this.

Code:
awk '/form/{if($2<2 || $2>7){print "category 1",$2} else {print"category 2",$2}}' file

# 3  
Old 10-29-2009
Dear protocomm,

your code worked well and thanks a lot.

Thanks
vasanth

---------- Post updated at 09:40 AM ---------- Previous update was at 09:14 AM ----------

Dear Protocomm,

Your code worked, but for more than 8 lines the desired output fails.

Desired output:

Code:
Check for form
check above and below  fill word
if above and below fill found, then it is category2.
If only one filll either above or belo, then category1.

# 4  
Old 10-29-2009
sorry - misread the req
Code:
nawk '$1=="form" {print "category" ++c, $2}' myFile

# 5  
Old 10-30-2009
Dear Vgersh,

Thanks for your reply.

In the above script category is in increasing order. But in desired output catergory is total 2 only. it have to be printed according to the condition stated:

Code:
use form as reference and check below and above fill word, if only one fill found then it should go to category1 and if two fill found then it will be category2.

Thanks in advance,
Vasanth

---------- Post updated at 10:56 PM ---------- Previous update was at 10:26 PM ----------

Hi,

Anybody can help for the above issue..

Thanks in advance
Vasanth

---------- Post updated 10-30-09 at 12:52 AM ---------- Previous update was 10-29-09 at 10:56 PM ----------

Dear friends,

i tried using sed script
Code:
{
N
s/form\nfill/category1\n/
}

But it not serving my requirement.

Anybody have answer?

Thanks in advance,
Vasanth

---------- Post updated at 06:08 AM ---------- Previous update was at 12:52 AM ----------

Hi

Anybody have answer for the above problem.

Thanks in advance,
Vasanth
# 6  
Old 10-30-2009
Bumping up posts or double posting is not permitted in these forums.

Please read the rules, which you agreed to when you registered, if you have not already done so.

You may receive an infraction for this. If so, don't worry, just try to follow the rules more carefully. The infraction will expire in the near future

Thank You.

The UNIX and Linux Forums.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

sed Find and Replace Text Between Two Strings or Words

I am looking for a sed in which I can recognize all of the text in between two indicators and then replace it with a place holder. For instance, the 1st indicator is a list of words "no|noone|havent" and the 2nd indicator is a list of punctuation ".|,|!".From a sentence such as "noone... (3 Replies)
Discussion started by: owwow14
3 Replies

2. Shell Programming and Scripting

Find and replace using sed

Hi All, I have a file as shown below: myFile.dat #---------------------------------------------------------- dataFile { Name shiva; location Delhi; travelID IDNumber; } 4 ( 560065 700007 100001 200002 )... (8 Replies)
Discussion started by: linuxUser_
8 Replies

3. Shell Programming and Scripting

sed help, Find a pattern, replace it with same text minus leading 0

HI Folks, I'm looking for a solution for this issue. I want to find the Pattern 0/ and replace it with /. I'm just removing the leading zero. I can find the Pattern but it always puts literal value as a replacement. What am I missing?? sed -e s/0\//\//g File1 > File2 edit by... (3 Replies)
Discussion started by: SirHenry1
3 Replies

4. Shell Programming and Scripting

Find and add/replace text in text files

Hi. I would like to have experts help on below action. I have text files in which page nubmers exists in form like PAGE : 1 PAGE : 2 PAGE : 3 and so on there is other text too. I would like to know is it possible to check the last occurance of Page... (6 Replies)
Discussion started by: lodhi1978
6 Replies

5. Shell Programming and Scripting

replace text with SED

Hi, I hope someone can help me out with the following: I have a file with the following lines in it: something /path/dir/my_-_file.01.ext sometext sometext somethingelse /path/dir/my_-_file.02.ext sometext something /path/dir/my_-_file.03.ext sometext some other text And i want to... (3 Replies)
Discussion started by: thyssimonis
3 Replies

6. Shell Programming and Scripting

Help with sed - replace text

Hi, I need to replace text in a file. Can someone help me write the proper sed command for this? My text file contains about a 100 lines of content. I want to replace the line containing new_name = "#{options}-#{ENV}" by, the following - new_name = "#{options}-#{ENV}-#{rand(999)}" ... (1 Reply)
Discussion started by: ankush2kn
1 Replies

7. Shell Programming and Scripting

find text but replace a text beside it

I have an html file that looks like this (this is just a part of the html file): <td colspan="3" rowspan="1" style="text-align: center; background-color: rgb(<!-- IDENTIFIER1 -->51, 255, 51);"><small><!-- IDENTIFIER2 -->UP</small></td> This is to automatically update the status of the... (4 Replies)
Discussion started by: The One
4 Replies

8. UNIX for Dummies Questions & Answers

Find and replace text PLEASE HELP

Dear friends please help, I have a large data file with few hundred lines. A small example is shown below: datafile is a file with few hundred lines with the third column has many different character stings: test 100 abc test 134 bcd test 356 cdf test 831 dfg test 720 fgh I need to... (6 Replies)
Discussion started by: bobo
6 Replies

9. UNIX for Dummies Questions & Answers

Find and replace text

test 100 abc test 134 bcd test 356 cdf test 831 dfg test 720 fgh Please advise how can I replace the abc, bcd....with ABC, BCD.... (1 Reply)
Discussion started by: bobo
1 Replies

10. Shell Programming and Scripting

Replace Text with sed

Hi , I´m working on Solaris 9 SPARC and I´m writing a Script to mírror two disks.. I need to replace some text in a file ( /etc/vfstab ) . For example: /dev/dsk/c0t0d0s0 ==> /dev/md/dsk/d0 I just want to change the "/dev/dsk/" to "/dev/md/dsk/. Thanks for your repsonse (5 Replies)
Discussion started by: networkfre@k
5 Replies
Login or Register to Ask a Question