Thanks again, I?ve never used Perl either, but I just installed it.
So I saved your script as a textfile called HEX_OCTAL.pl:
perl -n -e 'print join("
",map(sprintf("%03o",hex($_)),split(" ")))."\n";'
But unfortunately I get the following error when I try to run it:
syntax error at /Users/Philip/perl5/perlbrew/Perl_tests/HEX_OCTAL.pl line 1, near "n
-e "
Execution of /Users/Philip/perl5/perlbrew/Perl_tests/HEX_OCTAL.pl aborted due to
compilation errors.
Not sure what I?m doing wrong?being a noob, it could be anything!
Phil
On May 4, 2015, at 5:58 PM, Don North <north at
alum.mit.edu> wrote:
On 5/3/2015 9:31 PM, Philip Lord wrote:
Hi,
I?m looking for a program (or preferably an online conversion site, as I use Macintosh)
that can convert a long stream of Hex, to 3 digit Octal.
I have found one site that works ok
(
http://www.kjetil-hartveit.com/blog/10/hex-binary-decimal-octal-and-ascii-c…
<http://www.kjetil-hartveit.com/blog/10/hex-binary-decimal-octal-and-ascii-converter>
<http://www.kjetil-hartveit.com/blog/10/hex-binary-decimal-octal-and-ascii-converter
<http://www.kjetil-hartveit.com/blog/10/hex-binary-decimal-octal-and-ascii-converter>>),
but the octal it outputs is not always 3 digits long. Unfortunately I then need to
manually add the missing ?0?s, which can be a huge pain for long listings, and open to
human error.
For example the above site does?.
Entering this:
0E 09 11 1B 01 CD 05 00
Outputs this:
16 11 21 33 1 315 5 0
But I want this:
016 011 021 033 001 315 005 000
Does anyone know of a good site (or some good software)?
Much thanks
Phil
Here is a perl one-liner that does what you want:
perl -n -e 'print join("
",map(sprintf("%03o",hex($_)),split(" ")))."\n";'
Example:
~[514] perl -n -e 'print join("
",map(sprintf("%03o",hex($_)),split(" ")))."\n";'
1 2 3 de ad be
001 002 003 336 255 276
I typed the red line as input data, the program output the blue line.
You can also use standard unix file indirection or piping as well on the program line.
Don