sed Help Needed


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting sed Help Needed
# 1  
Old 06-19-2014
sed Help Needed

I want to search texts between first occurence of the matching pattern and replace it with some other text.pls advice what can be done. I searched alot, i could not find anything relevant.
Ex my input is as follows:
Code:
red
yellow
grey
white
blue
red
pink
violet
white

I want to search text "while" between the first occurrence of the two pattern match "red" and "blue" and wnat to replace it with black. I do not want to replace it in second occurrence of matching pattern. Expected output is as follows:
Code:
red
yellow
grey
black
blue
red
pink
violet
white

Pls suggets how owuld i write one liner sed command.

Last edited by Scrutinizer; 06-19-2014 at 09:38 AM.. Reason: code tags
# 2  
Old 06-19-2014
Code:
sed 0,/white/{s/white/black/} filename

# 3  
Old 06-19-2014
No,

This is not working, rather i knew this before.
You have not mentioned range for the pattern. I just gave sample input file, In reality "white" word can present multiple places in file. I wanna search white in first occurence of two matching pattern precisely (red and blue).
# 4  
Old 06-19-2014
If awk is fine then try

Code:
$ awk '!f && /red/,/blue/{f=1; sub(/white/,"black")}1' file

# 5  
Old 06-19-2014
Hi Akshay,

Command worked but can I exclude lines containing red and blue while getting result.
Now I could replace lines between those two search patten but it also replaces the texts which are present on those two search patterns.
Pls tell me script which will exclude lines containing words, red and blue.
# 6  
Old 06-19-2014
I don't know how your original file looks, try this

Code:
$ awk '!f && /red/,/blue/{if(/red|blue/){if(/blue/){f=1}next}sub(/white/,"black")}1' file

# 7  
Old 06-19-2014
Everyone at the UNIX and Linux Forums gives their best effort to reply to all questions in a timely manner. For this reason, posting questions with subjects like "Urgent!" or "Emergency" and demanding a fast reply are not permitted in the regular forums.

For members who want a higher visibility to their questions, we suggest you post in the Emergency UNIX and Linux Support Forum. This forum is given a higher priority than our regular forums.

Posting a new question in the Emergency UNIX and Linux Support Forum requires forum Bits. We monitor this forum to help people with emergencies, but we do not not guarantee response time or best answers. However, we will treat your post with a higher priority and give our best efforts to help you.

If you have posted a question in the regular forum with a subject "Urgent" "Emergency" or similar idea, we will, more-than-likely, close your thread and post this reply, redirecting you to the proper forum.

Of course, you can always post a descriptive subject text, remove words like "Urgent" etc. (from your subject and post) and post in the regular forums at any time.


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

some sed help needed

I have file with following contents; 127.0.0.1 www.google.com 127.3.3.1 www.cisco.com 127.3.5.1 www.msnbc.com I want output as 127.0.0.1 www.google.com google.com 127.3.3.1 www.cisco.com cisco.com 127.3.5.1 www.msnbc.com msnbc.com I tried sed 's/www.//g'... (5 Replies)
Discussion started by: sangfroid
5 Replies

2. Shell Programming and Scripting

help needed with SED

Hello! I have a "problem" with sed... In a log, I'm wondering how to have the name of the application when "INCIDENT" is in the file... The name of the application is before "INCIDENT". For this example, The result should be "SPVP0005" thanks for your help! (7 Replies)
Discussion started by: Castelior
7 Replies

3. Shell Programming and Scripting

Help needed on SED

Hi, I would like to process one file which looks like this : 09-04-16-17:11:53 -> count 1 NAME CHAN QID NMSGS NBYTES MAXBYTES P/T W_DEALNUM 105 123508770 1 10 14 P W_APPSTAT 106 123508771 1 12 35 P... (8 Replies)
Discussion started by: vive123
8 Replies

4. Shell Programming and Scripting

Help Needed in SED

Hi All , I have a input file which has set of lines like this :: cat a.txt unix1 djkdfkjdkkdfkdjfdfkjd 09191091 unix@unix.com <2008-23-07> unix 2 dfdfdfdfdfdfdfdfdfd unix3 dfldfljdflkjdfldfkljdfldjfl 0565606 unix1@unix.com <2008-10-09> unix4 dfdlfndfldflnlffddfd for some... (4 Replies)
Discussion started by: raghav1982
4 Replies

5. UNIX for Dummies Questions & Answers

SED Help Needed

I am trying to retrieve part of a line from /boot/grub/menu.lst The line is : gfxmenu (hd0,0)/usr/share/gfxboot/themes/pclinuxblue/boot/message I have figured out how to get this line into a file by itself. sed '/gfxmenu/ !d' /boot/grub/menu.lst > /tmp/menu.lst.pcl_tc What I need to... (2 Replies)
Discussion started by: Tide
2 Replies

6. Shell Programming and Scripting

Sed help needed

Hi, I have the following texts : #1#http://www.google.com#2#Google#3# #1#http://www.aol.com#2#AOL#3# I need a bash script which extracts the text between the markers (marks are #1#,#2#,#3#). I also need that text in variables ($URL and $DESCRIPT will be fine) so I can later use it to... (3 Replies)
Discussion started by: tcp27br
3 Replies

7. Shell Programming and Scripting

help with sed needed

Hi, I have a file in a form of jkkhjjk1:!:jkhdjkhjkh2:!:kljkljkljklj3:!:kljsdj4 kljlkfljf5:!:kjljljlj6:!:jhjkhjkh7 I am trying to use sed command such that everytime it find ":!:" it will removes it and print remaining of the line on the new line Output that I need will look like following... (8 Replies)
Discussion started by: arushunter
8 Replies

8. Shell Programming and Scripting

Help Needed -sed

Hi All, i have one file and in that i have to read each line and do some replacement. its is not fixed the number or column always be same it can be less also exm a;b;c;d;e;f (line) i have to do something like In the line If c is present then go to end of line and append ';date' else... (9 Replies)
Discussion started by: ravi.sadani19
9 Replies

9. Shell Programming and Scripting

Sed help needed

Could someone tell me how to replace varibles using SED inside Korn Shell? e.g. I have a ksh file program.ksh below: ------------------------------------ #!/bin/ksh sed -n '/ABC/p' $1 > output.txt if ] then status=new elif ] then status=old fi sed -n '/$status/p' $1... (5 Replies)
Discussion started by: stevefox
5 Replies

10. UNIX for Dummies Questions & Answers

Help needed with sed

Hi, I need to insert a line into a file underneath an existing line in the file, but am unsure as to the syntax. I'm pretty sure sed can be used though, although any ideas are more than welcome. For example: File ---- Line 1 Line 2 Line 3 Line 4 Line 6 I need to say: Insert "Line 5"... (1 Reply)
Discussion started by: danhodges99
1 Replies
Login or Register to Ask a Question