Find a pattern and replace using sed.


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Find a pattern and replace using sed.
# 1  
Old 09-15-2007
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
# 2  
Old 09-15-2007
Code:
sed 's!<b><a href="/home/document.do?assetkey=x-y-abcde-1&searchclause=photo">!<b><a href="/abcde.html">!' input_file.txt

# 3  
Old 09-15-2007
Find a pattern and replace using sed.

Thanks for the reply,

But, my input_file.txt will have multiple lines like

<b><a href="/home/document.do?assetkey=x-y-abcde-1&searchclause=photo">
<b><a href="/home/document.do?assetkey=x-y-12345-1&searchclause=photo">
<b><a href="/home/document.do?assetkey=x-y-xvyab-1&searchclause=photo">

<b><a href="/home/document.do?assetkey=x-y-56789-1&searchclause=river">
<b><a href="/home/document.do?assetkey=x-y-12345-1&searchclause=river">


after processing the each line from the input_file.txt, I need the ouput files like

abcde.html
12345.html
xvyab.html
56789.html
12345.html

Need furtehr help on this.

thx & rds,
Mari

Last edited by maridhasan; 09-15-2007 at 11:23 AM..
# 4  
Old 09-15-2007
Code:
cut -d "=" -f3 input_file.txt |cut -d "-" -f3|sed '/^$/d'|sed -e 's/$/\.html/'

kamitsin
# 5  
Old 09-15-2007
Code:
awk '/assetkey=x-y/ { 	gsub(/.*assetkey=x-y-/,"")
	gsub(/-1&searchclause.*/,"")
	print $0".html"
     } ' "file"

or
Code:
awk 'BEGIN{FS="-"}
/assetkey=x-y/{
   print $3".html"
}' "file"


Last edited by ghostdog74; 09-15-2007 at 12:38 PM..
# 6  
Old 09-18-2007
try this one

input:
Code:
<b><a href="/home/document.do?assetkey=x-y-abcde-1&searchclause=photo">
<b><a href="/home/document.do?assetkey=x-y-12345-1&searchclause=photo">
<b><a href="/home/document.do?assetkey=x-y-xvyab-1&searchclause=photo">

<b><a href="/home/document.do?assetkey=x-y-56789-1&searchclause=river">
<b><a href="/home/document.do?assetkey=x-y-12345-1&searchclause=river">

output:

Code:
<b><a href="/abcde.html">
<b><a href="/12345.html">
<b><a href="/xvyab.html">
<b><a href="/56789.html">
<b><a href="/12345.html">

code:
Code:
cat a | sed '/^$/d' > c
cat c | awk 'BEGIN{FS="-"}
{
printf("%s%s%s\n","<b><a href=\"/",$3,".html\">")
}'
rm c

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 -- Find pattern -- print remainder -- plus lines up to pattern -- Minus pattern

The intended result should be : PDF converters 'empty line' gpdftext and pdftotext?xml version="1.0"?> xml:space="preserve"><note-content version="0.1" xmlns:/tomboy/link" xmlns:size="http://beatniksoftware.com/tomboy/size">PDF converters gpdftext and pdftotext</note-content>... (9 Replies)
Discussion started by: Klasform
9 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 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

7. Shell Programming and Scripting

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 (14 Replies)
Discussion started by: vistastar
14 Replies

8. Shell Programming and Scripting

find a pattern and replace

i have a file which contains lines like this. intsrcrpttrn1099mctrl:export GRAPHPARM_AR="-input_code M302023" intsrcrpttrn1099mload:export GRAPHPARM_AR="-input_code M192023" intsrcrpttrn1099mload:export GRAPHPARM_AR="-input_code P192023" the value after -input_code starts with some alphabet... (4 Replies)
Discussion started by: dr46014
4 Replies

9. Shell Programming and Scripting

sed: Find start of pattern and extract text to end of line, including the pattern

This is my first post, please be nice. I have tried to google and read different tutorials. The task at hand is: Input file input.txt (example) abc123defhij-E-1234jslo 456ujs-W-abXjklp From this file the task is to grep the -E- and -W- strings that are unique and write a new file... (5 Replies)
Discussion started by: TestTomas
5 Replies

10. 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
Login or Register to Ask a Question