Sponsored Content
Top Forums Shell Programming and Scripting Extract sequences of bytes from binary for differents blocks Post 302846731 by ahamed101 on Sunday 25th of August 2013 11:37:13 PM
Old 08-26-2013
That is because you never asked for that. Check your post #29, sub block sequences are printed based on that.

--ahamed

---------- Post updated at 08:37 PM ---------- Previous update was at 11:06 AM ----------

For removing f's. If in a single byte there is a trailing f, that will be masked.

Code:
#define DONT_PRINT1 0xff
#define DONT_PRINT2 0x0f
#define MASK 0x0f
#define INV_MASK 0xf0

void print_bytes(const unsigned char *ptr, int len, block bl)
{
        int i;
        unsigned char op;
        for(i=0;i<len;i++){
                if(MAIN_BLOCK == bl){
                        op = ptr[i] & MASK;

                        if(ptr[i] == DONT_PRINT1)
                                continue;

                        if(  ((i == (len-1)) && !(op ^ DONT_PRINT2)) 
                          || (!(op ^ DONT_PRINT2) && (ptr[i+1] && (ptr[i+1] == DONT_PRINT1))) ){

                                op = ptr[i] & INV_MASK;
                                if(op){
                                        printf("%x", op);
                                }
                                continue;
                        }
                }
                printf("%02x", ptr[i]);
        }
        printf("|");
        return;

}

void print_data(const unsigned char *ptr, int len, block bl)
{
        if(MAIN_BLOCK == bl){
                print_bytes(ptr, 1, bl);
                print_bytes(ptr+1, 3, bl);
                print_bytes(ptr+4, 8, bl);
                print_bytes(ptr+12, 8, bl);
        } else {
                print_bytes(ptr, 1, bl);
                print_bytes(ptr+1, 1, bl);
                print_bytes(ptr+2, 1, bl);
                print_bytes(ptr+3, 1, bl);
                print_bytes(ptr+4, 4, bl);
                print_bytes(ptr+8, 8, bl);
                print_bytes(ptr+16, 1, bl);
                if(*ptr == intrim_pat1[2][1]){
                        print_bytes(ptr+17, 1, bl);
                }
        }
        return;
}

--ahamed
 

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
VOTEQUORUM_GETINFO(3)				    Corosync Cluster Engine Programmer's Manual 			     VOTEQUORUM_GETINFO(3)

NAME
votequorum_getinfo - Get information about the VoteQuorum service SYNOPSIS
#include <corosync/votequorum.h> int votequorum_getinfo(votequorum_handle_t *handle, unsigned int nodeid, struct votequorum_info *info); DESCRIPTION
The votequorum_getinfo function is used to get information about the voteing system and its nodes. The votequorum_info structure is defined as follows: struct votequorum_info { unsigned int node_id; unsigned int node_votes; unsigned int node_expected_votes; unsigned int highest_expected; unsigned int total_votes; unsigned int quorum; unsigned int flags; }; #define VOTEQUORUM_INFO_FLAG_DIRTY 1 #define VOTEQUORUM_INFO_FLAG_DISALLOWED 2 #define VOTEQUORUM_INFO_FLAG_TWONODE 4 #define VOTEQUORUM_INFO_FLAG_QUORATE 8 The members starting node_ hold information specific to the requested nodeid, the other are general to the voting system. RETURN VALUE
This call returns the CS_OK value if successful, otherwise an error is returned. BUGS
Callbacks are not support at the moment. ERRORS
The errors are undocumented. SEE ALSO
votequorum_overview(8), votequorum_finalize(3), votequorum_fd_get(3), votequorum_dispatch(3), corosync Man Page 2009-01-26 VOTEQUORUM_GETINFO(3)
All times are GMT -4. The time now is 06:14 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy