Replacing URL in a file with space


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Replacing URL in a file with space
# 1  
Old 02-26-2008
Replacing URL in a file with space

Hi,

I have a file with a URL text written in it within double quotes e.g.

"http://abcd.xyz.com/mno/somefile.dtd"

I want the above text to get replaced by a single space character.

I tried

cat File1.txt | sed -e 's/("http)*(dtd")/ /g' > File2.txt

But it didnt work out. Can someone suggest an sed command which replaces this url text, including double quotes, with a space.

Thanks
# 2  
Old 02-26-2008
Try this:

Code:
sed 's!^"http://abcd.*somefile.dtd"$! !' < File1.txt > File2.txt

Regards
# 3  
Old 02-27-2008
Thanks....but the command didnt work.......it did not delete/replace

Regards
# 4  
Old 02-27-2008
It works fine for me. Try this with the line you provide. It's substitute by an X instead of a space with the sed command:

Code:
echo '"http://abcd.xyz.com/mno/somefile.dtd"'|sed 's!^"http://abcd.*somefile.dtd"$!X!'

Regards
# 5  
Old 02-28-2008
Hi Franklin,

The echo | sed works fine, but the moment i try to the same thing in the file it doesnt work.

SED works and substitutes text if I specify any other text/pattern (which doesnt have any wild character or forward slash)

cat file1.txt | sed -e 's/DOCTYPE/ /' > file2.txt

But somehow when I use wild characters in sed its not working. I can specify the url since it may change with time.

I have to remove the url from following stmt

<!DOCTYPE tag SYSTEM "http://someurl/fileabc.dtd">

Thanks
# 6  
Old 02-29-2008
To rephrase your problem: you search for a string of the form "http://...." enclosed in double quotes and ending in a white space, yes?

Further, we do not have to consider the end-of-line situation, as the URL will always be part of some HTML-tag and therefore cannot be at the end of the line. (Otherwise we would have to consider the two cases '"http://..." ' and '"http://...."$'.)

Then the solution is:

Code:
sed 's/"http:\/\/[^ ]*dtd"/ /' file1 > file2

The reason why you code didn't work was:

Code:
cat File1.txt | sed -e 's/("http)*(dtd")/ /g' > File2.txt

First, the bracket ("()") are just simple characters if you do not escape them: "\(...\)". As you have no brackets in your search string this must fail.

Second, even if that were grouping characters the asterisk ("*") after "http" would then make the whole group optional. "*" is not "any string" like in DOS, but "the last expression zero or more times".

So, what you have been searching for was: the literal string '("http' followed by an optional ')', followed by '(dtd")'.

I hope this helps.

bakunin
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Reading URL using Mechanize and dump all the contents of the URL to a file

Hello, Am very new to perl , please help me here !! I need help in reading a URL from command line using PERL:: Mechanize and needs all the contents from the URL to get into a file. below is the script which i have written so far , #!/usr/bin/perl use LWP::UserAgent; use... (2 Replies)
Discussion started by: scott_cog
2 Replies

2. Web Development

Negate user space URL in Apache

Hello, I have a situation where I am trying to use Apache's RedirectMatch directive to redirect all users to a HTTPS URL except a single (Linux) user accessing there own webspace. I have found a piece of regular expression code that negates the username: ^((?!andy).)*$but when I try using it... (0 Replies)
Discussion started by: LostInTheWoods
0 Replies

3. Shell Programming and Scripting

Replacing / with a space using awk

I have a string and want to replace the / with a space. For example having "SP/FS/RP" I want to get "SP FS RP" However I am having problems using gsub set phases = `echo $Aphases | awk '{gsub(///," ")}; {print}'` (5 Replies)
Discussion started by: kristinu
5 Replies

4. Shell Programming and Scripting

Replacing space with T only in the 1st line of the file

Hi Masters , I have a file whose header is like HDRCZECM8CZCM000000881 SVR00120100401160828+020020100401160828+0200CZK There is a space between 1 and S ,my req is to chng the space to T I tried echo `head -1 CDCZECM8CZCM000000881` | sed 's/ /T/' it works ,but how can I modify in... (5 Replies)
Discussion started by: Pratik4891
5 Replies

5. Shell Programming and Scripting

Replacing a string with a space

I'm trying to replace a string "99999999'" with the blank where ever is there in the file. Could you please help in unix scripting. Thank You. (6 Replies)
Discussion started by: vsairam
6 Replies

6. Shell Programming and Scripting

Suppressing space replacing by comma

hi i want to replace spaces by comma my file is ADD 16428 170 160 3 WNPG 204 941 No 204802 ADD 16428 170 160 3 WNPG 204 941 No 204803 ADD 16428 170 160 3 WNPG 204 941 No 204804 ADD... (9 Replies)
Discussion started by: raghavendra.cse
9 Replies

7. UNIX for Advanced & Expert Users

sed help on replacing space before and after *

I would like to replace the value of * (which might have one or more whitespace(s) before and after *) using sed command in aix. Eg: Var='Hi I am there * Desired output: Hi I am there* (1 Reply)
Discussion started by: techmoris
1 Replies

8. Shell Programming and Scripting

replacing all space seperates with tabs

hi, I have a file that is space separated at all columns. Basically what I want to do is replace all the space separations with column separations. Thanks kylle (1 Reply)
Discussion started by: kylle345
1 Replies

9. UNIX for Dummies Questions & Answers

replacing space with pipe(delimiter)

Hello All, I have a file with thousands of records: eg: |000222|123456987|||||||AARONSON| JOHN P|||PRIMARY |P |000111|567894521|||||||ATHENS| WILLIAM k|||AAAA|L Expected: |000222|123456987|||||||AARONSON| JOHN |P|||PRIMARY |P |000111|567894521|||||||ATHENS| WILLIAM |k|||AAAA|L I... (6 Replies)
Discussion started by: OSD
6 Replies

10. Shell Programming and Scripting

replacing single space in argument

I want to write a script which will check the arguments and if there is a single space(if 2 more more space in a row , then do not touch), replace it with _ and then gather the argument so, program will be ran ./programname hi hello hi usa now hello hello so, inside of program,... (7 Replies)
Discussion started by: convenientstore
7 Replies
Login or Register to Ask a Question

Featured Tech Videos