Mailing List Archive


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [tlug] binary search of binary data



On Thu, Dec 30, 2004 at 12:43:08AM +0900, Edward Wright wrote:
> On Wed, Dec 29, 2004 at 07:12:05AM -0800, Dave Brown wrote:
> > On Wed, Dec 29, 2004 at 11:50:51PM +0900, Edward Wright wrote:
> > > I don't know how to make prinf output the byte values. It'll ouput the
> > > hex representation no problem....
> > > 
> > > I tried using it to create the above mentioned file like so:
> > > 
> > > printf $'\x26\x9d\x00\x00\x28\x9d\x00\x00' >testfile
> > 
> > Why try so hard?  Why not just use echo?
> 
> I believe prinf (with no format string) and echo -n are functionally
> equivalent.

echo is a shell builtin and printf is an external program.  Save
the PIDs!  (Shell builtins will run faster, if you have lots of
them.)

> > :) [~] echo -n $'\x26\x9d\x00\x00\x28\x9d\x00\x00' | od -t x1
> > 0000000 26 9d 00 00 28 9d 00 00
> > 0000010
> > :) [~] 
> > 
> 
> 1) again, I need the byte values, not the hex representation, so I'm
> not sure what this gets me...

The "od -t x1" is just to demonstrate that the raw byte-value
output is, indeed, what I claim it is.  Instead of piping it to
od, you can (say) dump it into a file.

> 2) interestingly, when I used the exact command you used, I got
> different output:
> 
> echo -n $'\x26\x9d\x00\x00\x28\x9d\x00\x00' | od -t x1
> 0000000 26 9d
> 0000002
> 
> truncated at the null byte. Hmm...

Oh, hrm, that's interesting.  I'm using zsh, which preserves the
entire output.  

I just verified it with my bash-3.00 and it does, indeed,
truncate.  I just sent in a bug report to the bash folks about
this--I think that's incorrect behaviour.

--Dave


Home | Main Index | Thread Index

Home Page Mailing List Linux and Japan TLUG Members Links