Sponsored Content
Top Forums Shell Programming and Scripting Extract sequences of bytes from binary for differents blocks Post 302843792 by ahamed101 on Thursday 15th of August 2013 06:16:29 AM
Old 08-15-2013
Well, there is nothing which mentions the end of each block. 0xff 0x33 represents the end of file, is that right?

Following code extracts the data from which you want, but there is no check for end of block as I am still confused. May be a larger file with expected output can clarify it.

Code:
#include <stdio.h>
#include <stdlib.h>

#define err(x) {printf("\nError: %s... Exiting...\n", x); exit(1);}

static unsigned char pat1[] = {0x99, 0x11, 0x45, 0x27};
static unsigned char pat2[] = {0x73, 0x49};

int main(int argc, char **argv)
{

        if(argc < 2)
                err("File name missing");

        unsigned char buf[32];
        unsigned char *ptr = buf;
        int pos = 0;

        FILE *fp = fopen(argv[1], "rb");
        if(!fp) err("Unable to open the file");

        while(!feof(fp)){
                fread(ptr, sizeof(char), 1, fp);
                pos = ftell(fp);
                if(buf[0] == 0x32){
                        fread(ptr+1, sizeof(char), 19, fp);
                        if(memcmp(buf+4, pat1, 4) && memcmp(buf+12, pat2, 2)){
                                fseek(fp, pos, SEEK_SET);
                                continue;
                        }else{
                                int i=0;
                                for(i=0;i<=19;i++) printf("%02x ", buf[i]);
                                printf("\n");
                        }
                }
        }
        return 0;
}

Code:
user@Imperfecto_:~$ gcc extract.c -o extract 
user@Imperfecto_:~$ ./extract binfile.txt 
32 00 00 01 99 11 45 27 89 34 55 0f 73 49 45 49 23 2f ff ff 
32 00 00 02 99 11 45 27 89 34 55 1f 73 49 45 54 76 8f ff ff 
user@Imperfecto_:~$

--ahamed

---------- Post updated at 03:16 AM ---------- Previous update was at 03:13 AM ----------

Or is it that once we encounter 0xff 0x33, we should stop?

--ahamed

Last edited by ahamed101; 08-15-2013 at 08:05 AM..
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Remove first N bytes and last N bytes from a binary file on AIX.

Hi all, Does anybody know or guide me on how to remove the first N bytes and the last N bytes from a binary file? Is there any AWK or SED or any command that I can use to achieve this? Your help is greatly appreciated!! Best Regards, Naveen. (1 Reply)
Discussion started by: naveendronavall
1 Replies

2. UNIX for Advanced & Expert Users

Deal with binary sequences

Hello, I have come across the necessity for me to deal with binary sequences and I had a few questions. 1- Does any UNIX scripting language provide any tool or command for converting text data to binary sequences? Example of binary sequence: "0x97 0x93 0x85 0x40 0xd5 0xd6 0xd7" 2- If I want... (2 Replies)
Discussion started by: Indalecio
2 Replies

3. Shell Programming and Scripting

Extract sequence blocks

Hi, I have an one-line file consisting of a sequence of 660 letters. I would like to extract 9-letter blocks iteratively: ASDFGHJKLQWERTYUIOPZXCVBNM first block: ASDFGHJKL 1nd block: SDFGHJKLQ What I have so far only gives me the first block, can anyone please explain why? cat... (7 Replies)
Discussion started by: solli
7 Replies

4. Shell Programming and Scripting

extract blocks of text from a file

Hi, This is part of a large text file I need to separate out. I'd like some help to build a shell script that will extract the text between sets of dashed lines, write that to a new file using the whole or part of the first text string as the new file name, then move on to the next one and... (7 Replies)
Discussion started by: cajunfries
7 Replies

5. Linux

Why does ext3 allocate 8 blocks for files that are few bytes long

The title is clear: why does ext3 allocate 8 blocks for files that are few bytes long? If I create a file named "test", put a few chars in it, and then I run: stat test I get that "Blocks: 8" I searched in the web and found that ext does that, it allocates 8 blocks even if It doesn't need... (4 Replies)
Discussion started by: Tavo
4 Replies

6. UNIX for Dummies Questions & Answers

X bytes of 0, Y bytes of random data, Z bytes of 5, T bytes of 1. ??

Hello guys. I really hope someone will help me with this one.. So, I have to write this script who: - creates a file home/student/vmdisk of 10 mb - formats that file to ext3 - mounts that partition to /mnt/partition - creates a file /mnt/partition/data. In this file, there will... (1 Reply)
Discussion started by: razolo13
1 Replies

7. Shell Programming and Scripting

Extract sequences based on the list

Hi, I have a file with more than 28000 records and it looks like below.. >mm10_refflat_ABCD range=chr1:1234567-2345678 tgtgcacactacacatgactagtacatgactagac....so on >mm10_refflat_BCD range=chr1:3234567-4545678... tgtgcacactacacatgactagtatgtgcacactacacatgactagta . . . . . so on ... (2 Replies)
Discussion started by: Diya123
2 Replies

8. Shell Programming and Scripting

Extract length wise sequences from fastq file

I have a fastq file from small RNA sequencing with sequence lengths between 15 - 30. I wanted to filter sequence lengths between 21-25 and write to another fastq file. how can i do that? (4 Replies)
Discussion started by: empyrean
4 Replies

9. Shell Programming and Scripting

Extract the part of sequences from a file

I have a text file, input.fasta contains some protein sequences. input.fasta is shown below. >P02649 MKVLWAALLVTFLAGCQAKVEQAVETEPEPELRQQTEWQSGQRWELALGRFWDYLRWVQT LSEQVQEELLSSQVTQELRALMDETMKELKAYKSELEEQLTPVAEETRARLSKELQAAQA RLGADMEDVCGRLVQYRGEVQAMLGQSTEELRVRLASHLRKLRKRLLRDADDLQKRLAVY... (8 Replies)
Discussion started by: rahim42
8 Replies

10. Shell Programming and Scripting

Blocks of text in a file - extract when matches...

I sat down yesterday to write this script and have just realised that my methodology is broken........ In essense I have..... ----------------------------------------------------------------- (This line really is in the file) Service ID: 12345 ... (7 Replies)
Discussion started by: Bashingaway
7 Replies
SDL_AudioCVT(3) 						 SDL API Reference						   SDL_AudioCVT(3)

NAME
SDL_AudioCVT - Audio Conversion Structure STRUCTURE DEFINITION
typedef struct{ int needed; Uint16 src_format; Uint16 dest_format; double rate_incr; Uint8 *buf; int len; int len_cvt; int len_mult; double len_ratio; void (*filters[10])(struct SDL_AudioCVT *cvt, Uint16 format); int filter_index; } SDL_AudioCVT; STRUCTURE DATA
needed Set to one if the conversion is possible src_format Audio format of the source dest_format Audio format of the destination rate_incr Rate conversion increment buf Audio buffer len Length of the original audio buffer in bytes len_cvt Length of converted audio buffer in bytes (calculated) len_mult buf must be len*len_mult bytes in size(calculated) len_ratio Final audio size is len*len_ratio filters[10](..) Pointers to functions needed for this conversion filter_index Current conversion function DESCRIPTION
The SDL_AudioCVT is used to convert audio data between different formats. A SDL_AudioCVT structure is created with the SDL_BuildAudioCVT function, while the actual conversion is done by the SDL_ConvertAudio function. Many of the fields in the SDL_AudioCVT structure should be considered private and their function will not be discussed here. Uint8 *buf int len int len_mult double len_ratio SEE ALSO
SDL_BuildAudioCVT, SDL_ConvertAudio, SDL_AudioSpec SDL
Tue 11 Sep 2001, 22:58 SDL_AudioCVT(3)
All times are GMT -4. The time now is 02:54 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy