SED on cygwin not working with Hex or Octal


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting SED on cygwin not working with Hex or Octal
# 1  
Old 03-26-2012
SED on cygwin not working with Hex or Octal

Hi, I have downloaded a web page that I need to cleanup before passing to xmlstarlet.

Using UltraEdit's HEX utility part of my download is as follows:

3C 2F 61 3E 0A 09 0A 09 09 3C 2F 61 3E

which in ASCII is

Code:
</a>
	
		</a>

I need to locate this string and replace it with just </a>

I have tried:

Code:
awk '{ gsub(/\x0A\x09\x0A\x09\x09/, "<\/a>"); print}' in > out

Code:
sed -e 's/<\/a>\\n\\t\\n\\t\\t<\/a>/<\/a>/g' in > out

Code:
 sed -e 's/<\/a>\x0A\x09\x0A\x09\x09<\/a>/<\/a>/' in > out

Code:
sed -e  's/<\/a>\o012\o011\o012\o011\o011<\/a>/<\/a>/' in > out

but it is not having any of it - it just creates an identical output file.

I did create a test file with just two new lines in it and try "sedding" those but with no success. It is almost like my sed will not recognise anything other than plain text.

I am using sed GNU version 4.2.1 which, according to the documentation, happily supports such activities.

Any ideas folks?

Last edited by dazhoop; 03-26-2012 at 08:58 AM..
# 2  
Old 03-26-2012
what is the output from ?
Code:
# od -c yourfile

# 3  
Old 03-26-2012
SED on cygwin not working with Hex or Octal

Thanks for your reply. Sorry ygemici, I don't quite follow what you mean.

The input file is an HTML file, the product of a wget to an external web site.

The output file is created by whatever option I try and use to do the search and replace.

I ran the od -c against both input and output file, both were identical. What can I look for that will be helpful in the 'od -c ' output ?
# 4  
Old 03-26-2012
Its not a problem with cygwin, sed or awk. Its the way inputfile is handled. The inputfile is handled line by line by sed and awk. So, that's why it didn't find <\/a>\\n\\t\\n\\t\\t<\/a> in a single line.

You may change your approach. Try this perl one-liner:

Code:
[user@cygwin ~]$ cat inputfile
hello
</a>

                </a>
world
[user@cygwin ~]$ perl -ne 'if(/^<\/a>/ .. /^\t\t<\/a>/) { (/^\t\t<\/a>/) && print "</a>\n" } else { print }' inputfile
hello
</a>
world

This User Gave Thanks to balajesuri For This Post:
# 5  
Old 03-26-2012
SED on cygwin not working with Hex or Octal

balajesuri, yes of course, line-by-line. A bad example of overlooking the obvious!

The Perl provided doesn't work for me, however, that is another subject for another thread.

This question is, of course, answered. Thanks!
# 6  
Old 03-26-2012
Code:
# cat file
hello
</a>

                </a>
world

Code:
# sed -e '/<\/a>/,/<\/a>/{N;N;}' -e 's/<\/a>\n\t\n\t\t<\/a>/<\/a>/'  file
hello
</a>
world

# 7  
Old 03-26-2012
ygemici, I created the Hello World file as indicated in your post and ran the sed, but the output was identical to the input. I have also tried the following (as I think they are the fit to my file) on my file but with the result being that an identical output file was created

Code:
 sed -e '/<\/a>/,/<\/a>/{N;N;}' -e 's/<\/a>\x0A\x09\x0A\x09\x09<\/a>/<\/a>/'  in > out

Code:
 sed -e '/<\/a>/,/<\/a>/{N;N;}' -e 's/<\/a>\n\t\n\t\t<\/a>/<\/a>/'  in >  out

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Using sed to split hex string

Hi, I'm looking to split the following hex string into rows of four elements. I've tried the following but it doesn't seem to work. How can I tell sed to match based on a pair of number(s) and letter(s), and add a newline every 4 pairs? In addition, I need to add another newline after every... (5 Replies)
Discussion started by: sand1234
5 Replies

2. UNIX for Advanced & Expert Users

Replace hex values using sed command

File lalo.txt contains: Á I need to replace Á by A using sed command. od -x lalo.txt 0000000 c10a 0000002 sed -e 's/\xc1\x0a/A/g' lalo.txt > lalo2.txt Also tried: sed -e 's/\xc3\x81/A/g' lalo.txt > lalo2.txt Output file lalo2.txt still has Á Unix version: SunOS 5.11 ... (9 Replies)
Discussion started by: mrreds
9 Replies

3. Shell Programming and Scripting

How to replace with "sed" some hex values by other hex values?

Assume I have a file \usr\home\\somedir\myfile123.txt and I want to replace all occurencies of the two (concatenated) hex values x'AD' x'A0' bytwo other (concatenated) hex values x'20' x'6E' How can I achieve this with the gnu sed tool? Additional question: Is there a way to let sed show... (1 Reply)
Discussion started by: pstein
1 Replies

4. Shell Programming and Scripting

Cygwin script log redirection not working well

I have a simple script which will send a curl request and redirect the output to a log file. for i in {1..20} do curl google.com -is >>log.log & echo "request # $i" >> log.log doneAfter it completes the execution, if I run the following command I should see 20 lines because I am printing... (4 Replies)
Discussion started by: heykiran
4 Replies

5. UNIX and Linux Applications

Cygwin application not working on my machine.

I have windows XP machine. Today i have tried to install Cygwin, I've downloaded all the packages then ran the setup. It's showed completed. But when i try to open this it's not working. Do i need to do anything extra for this..? Please help... (3 Replies)
Discussion started by: pamu
3 Replies

6. Shell Programming and Scripting

Help with sed to add delimiter to send HEX with netcat

Hello, I want to send tcpflow dump to a TCP port in HEX data, to send with netcat i need to convert to HEX and add \\x before each HEX bytes, to do this i use this line: tcpflow -i -C dst port | xxd -p | sed 's/../&\\\\x/g;s/ $//' | nc the output on the listening end:... (3 Replies)
Discussion started by: patx
3 Replies

7. Shell Programming and Scripting

how to get data from hex file using SED or AWK based on pattern sign

I have a binary (hex) file I need to parse to get some data which are encoded this way: .* b4 . . . 01 12 .* af .* 83 L1 x1 x2 xL 84 L2 y1 y2 yL By another words there is a stream of hexadecimal bytes (in my example separated by space for better readability). I need to get value stored in... (3 Replies)
Discussion started by: sameucho
3 Replies

8. Programming

What is the difference between ios::hex and std::hex?

Hi, Is there really a difference between these two, std::hex and ios::hex?? I stumbled upon reading a line, "std::ios::hex is a bitmask (8 on gcc) and works with setf(). std::hex is the operator". Is this true? Thanks (0 Replies)
Discussion started by: royalibrahim
0 Replies

9. Programming

After converting the hexstr to Hex and storing the Hex in a char*

Hi All, My main intension of is to convert the Hexstring stored in a char* into hex and then prefixing it with "0x" and suffix it with ',' This has to be done for all the hexstring char* is NULL. Store the result prefixed with "0x" and suffixed with ',' in another char* and pass it to... (1 Reply)
Discussion started by: rvan
1 Replies

10. UNIX for Dummies Questions & Answers

Sed command in cygwin

I am new to unix and lerning tru cygwin (unix simulation on windows) i am trying to lern sed command and want to interchange first and second no in a string. What i mean is i want gauri 1234 556 to gauri 556 1234 i am getting the following error $ echo gauri 1234 556 | sed s/\(*\)... (2 Replies)
Discussion started by: gauri_agr
2 Replies
Login or Register to Ask a Question