Reading binary content


 
Thread Tools Search this Thread
Operating Systems Solaris Reading binary content
# 1  
Old 10-19-2015
Reading binary content

Dear Gurus

I am stuck with the peice of work and do not know from where to start.

I get a machine generated file which is binary file contain binary data, i want to read binary data as it is without converting into any other format.

i want to read byte by byte.

Please let me know what unix command will show the content of the binary file in binary format itself.

when i do cat file name then the output looks like below content

zð cH$zp b$zp c$zð b$zð c*$zp b*$zp c¢$zð b¢$zð cF«$zp%+*$zp%*¼$zð%*Á$zð

I want to see in the binary format and read byte by byte.

any help will be greatly appriciated
# 2  
Old 10-19-2015
Please use code tags as required by forum rules.

Did you consider the hexdump or od commands to show binary data?
# 3  
Old 10-19-2015
Quote:
Originally Posted by RudiC
Please use code tags as required by forum rules.

Did you consider the hexdump or od commands to show binary data?
No, I don't know the command but my requirment is i need to get in binary format only and donot want in hex or octal format
# 4  
Old 10-19-2015
The bc utility can be used to transform from hex or octal to binary presentation. Something like (more or less untested):
Code:
od -An -w1 -b -v your.binary.file |while read BYTE; do 
   echo "ibase=8;obase=2;$BYTE" |bc
done

# 5  
Old 10-19-2015
command is not returning any output
# 6  
Old 10-19-2015
It should give you an idea how to solve it.
I do not have a Solaris box at hand and I do not know what shell you use - thats why I said untested. You'll have to put some effort into it and find the correct syntax for your environment.
# 7  
Old 10-19-2015
Here is a working solution based on cero suggestion, although extremely inefficient. Shell scripting is not really adapted to this kind of tasks.

Code:
od -An -v -t d1 yourbinary |
  while read line ; do
    for byte in $line ; do
      if [ $byte -lt 0 ] ; then byte=$((byte+256)); fi
      printf "%08.8s" $(echo "ibase=10;obase=2;$byte"|bc)
    done
  done

Here is how I would do it in C:

Code:
main(){
        int i,j,cc;
        static unsigned char buf[1024];
        static unsigned char bin[256][9];
        for(i=0;i<256;i++) {
                for(j=0;j<8;j++) {
                        bin[i][7-j]=i&(1<<j)?'1':'0';
                }
                bin[i][8]=0;
        }
        while((cc=read(0,buf,1024))>0)
                for(i=0;i<cc;i++)
                        printf("%s",bin[buf[i]]);
        printf("\n");
}

The shell script takes 2 min 10 s for a 10 kB file while the compiled C takes about 10 milliseconds for the same input.

Last edited by jlliagre; 10-21-2015 at 06:24 AM..
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Programming

Reading flat file content

is there any unix tools that can read the text files like through SQL queries? (ie in Hadoop, Impala DB support flat file query) (1 Reply)
Discussion started by: omykarshan
1 Replies

2. Programming

How to replicate Ruby´s binary file reading with Java?

Hello to all guys, Maybe some expert could help me. I have a working ruby script shown below that reads a big binary file (more than 2GB). The chunks of data I want to analyze is separated by the sequence FF47 withing the binary. So, in the ruby script is defined as "line separator" =... (10 Replies)
Discussion started by: Ophiuchus
10 Replies

3. Shell Programming and Scripting

Trouble reading content of file from a variable

Hi , i have a parameter which has path of a file. Now i need to have another parameter with the content of that file. I tried the belwo script , can any one please help. I dont want to use cat command to read. Can we do it with out using cat command. while read line do... (9 Replies)
Discussion started by: Ravindra Swan
9 Replies

4. Programming

help with reading a binary file and fseek

this is my code and no matter what record number the user enters i cant get any of the records fields to read into the structure acct. What am i doing wrong? #include <stdio.h> typedef struct { char name; int number; float balance; } acct_info_t; int main (int... (0 Replies)
Discussion started by: bjhum33
0 Replies

5. Programming

reading binary files

#include <stdio.h> /* typedef struct { char name; int number; float balance; } acct_info_t; */ int main() { FILE *fptr; fptr = fopen("acct_info", "r"); int magic = 5; fseek(fptr,3,SEEK_SET); fread(&magic,sizeof(int),1,fptr);... (7 Replies)
Discussion started by: robin_simple
7 Replies

6. Shell Programming and Scripting

Reading content of a variable to create a new one?

Hello. I've written up a script, that populates a variable with a list of tapes returned from my library. For example: 701940L3,701941L3,701942L3,701943L3,701944L3,701945L3,701946L3,701947L3,701948L3 So now, the variable "TAPELIST" contains those numbers, delimited by commas. I'd like to... (6 Replies)
Discussion started by: Stephan
6 Replies

7. Shell Programming and Scripting

Problem in reading a file content

Hi, I am reading a file line by line using read line function of while loop. Each line contains 4 fields. I want to take these 4 values in 4 variables in each iteration so that i can use them in my script. The issue here is that my awk command is returning awkward results - Here is a sample line... (8 Replies)
Discussion started by: garman
8 Replies

8. Programming

Reading a binary file in text or ASCII format

Hi All, Please suggest me how to read a binary file in text or ASCII format. thanks Nagendra (3 Replies)
Discussion started by: Nagendra
3 Replies

9. Shell Programming and Scripting

Reading Numerical Binary Data using KSH

Hi, I've searched and couldn't find anyone else with this problem. Is there anyway (preferably using ksh - but other script languages would do) that I can read in binary float data into a text file. The data (arrays from various stages of radar processing) comes in various formats, but mainly... (3 Replies)
Discussion started by: Jonny2Vests
3 Replies

10. Programming

Reading from a binary file

I'm having trouble with reading information back into a program from a binary file. when i try to display the contents of the file i get a Memory fault(coredump). would anyone be able to assist? this is my fread line fread(&file_data,sizeof(struct book_type),1,fileSave); ive also tried it without... (3 Replies)
Discussion started by: primal
3 Replies
Login or Register to Ask a Question