How to replace the last pattern using sed?


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting How to replace the last pattern using sed?
# 1  
Old 03-29-2011
How to replace the last pattern using sed?

myfile:

AAAaaa
BBBbbb
CCCccc
AAAeee
DDDddd

how to replace the last AAA as EEEEE using sed?

like this:

AAAaaa
BBBbbb
CCCccc
EEEEEeee
DDDddd
# 2  
Old 03-29-2011
Perhaps this post will provide some insight

Take a look at:

https://www.unix.com/shell-programmin...rence-sed.html
# 3  
Old 03-29-2011
Code:
sed '/eee/s/AAA/EEEEE/' infile

---------- Post updated at 03:44 PM ---------- Previous update was at 03:42 PM ----------

Code:
# cat tst
AAAaaa
BBBbbb
CCCccc
AAAeee
DDDddd

Code:
# sed '/eee/s/AAA/EEEEE/' tst
AAAaaa
BBBbbb
CCCccc
EEEEEeee
DDDddd

# 4  
Old 03-29-2011
don't use the eee after AAA,because it may not be eee.
# 5  
Old 03-29-2011
So we miss some criteria to answer your question : give more clue

You want to replace which AAA ?

all but not the one in the first line ?

Only the last occurrence of AAA found ?

Only the second occurrence of AAA found ?

other ?
# 6  
Old 03-29-2011
Unless this is to be part of a pipeline, why sed? Using sed, you'd have to store each occurrence of "AAA" and all subsequent lines until the next occurrence of "AAA" exclusive or the final line of the file, print the block if the end of file has not been reached or perform the substitution if it has.

On the other hand, this is a trivial matter using ed. Set the current line to the first line, search backwards for the first occurrence of "AAA", and then perform the substitution.

Regards,
Alister
# 7  
Old 03-29-2011
I wanna replace ONLY the last occurrence of AAA using one shell command such as sed or awk.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Find pattern and replace using sed

Hi, i want to replace the following lines in such a way that if the word merge exists in first column it must replace the 3rd column as M and if parse exists in first column then the last column must P, if neither it must mark it as X. I have tried the solution using awk, but it is saying... (6 Replies)
Discussion started by: charlie87
6 Replies

2. UNIX for Beginners Questions & Answers

sed replace pattern

I have a file with multiple lines, all in the same format. For each line, I need to replace the sequence of digits after the last : with a new value, but keep the single quote at the end of the line. Example: Input: ( two lines of file) Name: 'text1:200/text2:1.2.3.4' Name2:... (19 Replies)
Discussion started by: Beginner101
19 Replies

3. Shell Programming and Scripting

sed - Search and replace within pattern

Hi Guys! Unix newbie here! Have a requirement for which I have been scouting the forums for a solution but has been out of luck so far :( I have a file which contains the following:- TEST1|TEST2|"TEST3|1@!2"|TEST5 My sed command should result in either one the following output:-... (6 Replies)
Discussion started by: hishamzz
6 Replies

4. Shell Programming and Scripting

sed find/replace a pattern, but not this one..

I've got a file like so: ...lots of lines, etc. push "route 10.8.0.0 255.255.255.0" push "route 192.168.1.123 255.255.255.0" ...lots of lines, etc. I want to sed find/replace the IP address in the second line, whatever it is, with a new IP address, but I don't want to touch the first line.... (5 Replies)
Discussion started by: DaHai
5 Replies

5. Shell Programming and Scripting

sed command to replace two character pattern with another pattern

Not able to paste my content. Please see the attachment :-( (2 Replies)
Discussion started by: vivek d r
2 Replies

6. Shell Programming and Scripting

sed to replace pattern with filename

Hi all, I'm trying to replace a pattern/string in about 100 files with the filename using following commands but getting nowhere: for f in *.fa; do sed "s/^>.*/>$f/g" $f > $f_v1.fa; done for f in *.fa; do sed 's/^>.*/>`echo $f`/' > $fa_v1.fa; done Basically I want to change any line... (5 Replies)
Discussion started by: ivpz
5 Replies

7. Shell Programming and Scripting

Replace everything but pattern in a line using sed

I have a file with multiple lines like this: <junk><PATTERN><junk><PATTERN><junk> <junk><PATTERN><junk><PATTERN><junk><PATTERN><junk> Note that 1. There might be variable number occurrences of PATTERN in a line. 2. <> are just placeholders, they do not form part of the pattern. I need... (4 Replies)
Discussion started by: flatley
4 Replies

8. Shell Programming and Scripting

Pattern Replace using sed or awk

Hi , My file have data like 4:ALMOST NEVER PR 1925836 5:NEVER PR W DDA 5857610 6:NEVER PR WO DDA 26770205 but i want to replace the spaces before last numric digits out put should be like this 4:ALMOST NEVER PR=1925836 5:NEVER PR W DDA=5857610 6:NEVER PR WO... (7 Replies)
Discussion started by: max_hammer
7 Replies

9. Shell Programming and Scripting

SED Search Pattern and Replace with the Pattern

Hello All, I have a string "CP_STATUS OSSRC_R6_0_Shipment_R1H_CU AOM_901046 R1H_LLSV1_2008031", and I just want to extract LLSV1, but I dont get the expected result when using the sed command below. # echo "CP_STATUS OSSRC_R6_0_Shipment_R1H_CU AOM_901046 R1H_LLSV1_2008031" | awk '{print... (4 Replies)
Discussion started by: racbern
4 Replies

10. Shell Programming and Scripting

Find a pattern and replace using sed.

Hi I need to help on finding the below pattern using sed <b><a href="/home/document.do?assetkey=x-y-abcde-1&searchclause=photo"> and replace as below in the same line on the index file. <b><a href="/abcde.html"> thx in advance. Mari (5 Replies)
Discussion started by: maridhasan
5 Replies
Login or Register to Ask a Question