Sponsored Content
Top Forums Shell Programming and Scripting Regex and backreference to replace in binary file Post 302869601 by bartus11 on Wednesday 30th of October 2013 03:21:48 PM
Old 10-30-2013
You can try simple loop in Perl:
Code:
perl -pe 'for ($i=0;$i<16;$i++){$x=sprintf "%X",$i; s/\x4$x/\x2$x/g}' file

 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

replace string in binary file

Dear all, How can replace special string with another string in binary file? Thanks&Best Regards (2 Replies)
Discussion started by: sg1207
2 Replies

2. UNIX for Dummies Questions & Answers

replace line after a regex

Hi, I am trying to write a script which will modify a given account's settings by searching for a line in a file and then replacing the line after it. Here is a portion of my input file: type=friend username=0002 secret=password host=dynamic dtmfmode=rfc2833 mailbox=0002 context=sip... (2 Replies)
Discussion started by: the1armedcoder
2 Replies

3. Emergency UNIX and Linux Support

search replace regex question

Hi, I need to run a search and replace on a large database, what I need to change is all instances of #### (eg. 1764 or 1964) to (####) (eg. (1764) or (1964)) But there might be other numbers in there such as (1764) and I do not need those changed to ((1764)) How can I... (7 Replies)
Discussion started by: lawstudent
7 Replies

4. Shell Programming and Scripting

sed regex backreference replacement

Hello, I want to rename multiple files and catch some points about backreference within sed and regex. Here is a part of my file list. Input: S92A.fa S92B.fa ... S96Z.fa S921.fa S922.fa ... S997.fa Note: The file names are not necessarily continuous from A~Z or 921 ~ 997, as some of the... (3 Replies)
Discussion started by: yifangt
3 Replies

5. UNIX for Dummies Questions & Answers

read regex from ID file, print regex and line below from source file

I have a file of protein sequences with headers (my source file). Based on a list of IDs (which are included in some of the headers), I'd like to print out only the specified sequences, with only the ID as header. In other words, I'd like to search source.txt for the terms in IDs.txt, and print... (3 Replies)
Discussion started by: pathunkathunk
3 Replies

6. Shell Programming and Scripting

Convert binary file to csv and then back to the binary format

Hello *nix specialists, Im working for a non profit organisation in Germany to transport DSL over WLAN to people in areas without no DSL. We are using Linksys WRT 54 router with DD-WRT firmware There are at the moment over 180 router running but we have to change some settings next time. So my... (7 Replies)
Discussion started by: digidax
7 Replies

7. Shell Programming and Scripting

Regex - search and replace

I have file which contains data in the following format all in a single line: BDW_PUBLN_ID DECIMAL(18:0) NOT NULL PRIMARY INDEX ARGO_ACCT_DEP_PI ( OFC_ID ,CSHBX_ID ,TRXN_SEQ_NUM ,PROCG_DT ) PARTITION BY RANGE_N(PROCG_DT BETWEEN DATE '2012-03-01' AND DATE '2014-12-31' EACH INTERVAL '1' MONTH );... (4 Replies)
Discussion started by: ysvsr1
4 Replies

8. UNIX for Dummies Questions & Answers

Binary search and replace

Hello again. I have two problems - is it possible to solve them? 1. I want to replace a few bytes after specific hex-string. i.e.: I want to replace two bytes after AA AB AC: AA AB AC 00 00 AA AA AA so the expected result should be: AA AB AC FF FF AA AA AA 2. I want to replace three bytes... (9 Replies)
Discussion started by: useretail
9 Replies

9. UNIX for Advanced & Expert Users

Segregate file content using sed backreference

I have some text like EU1BTDAT:ASSGNDD filename='$SEQFILES/SUNIA.PJ008202.CARDLIB/DATECARD' EU1BTDATEST:ASSGNDD filename='$SEQFILES/SUNIA.PJ008202.CARDLIB/DATECARD' EU1CLOSEDATES:ASSGNDD filename='$SEQFILES/SUNIA.PJ008202.CARDLIB/DATECARD' EU1DATED:ASSGNDD... (8 Replies)
Discussion started by: gotamp
8 Replies

10. UNIX for Beginners Questions & Answers

Regex Expression Replace

I have a XML file where there is a tag with like <wd:address_line_1>1234 Street</wd:address_line_1> I want to replace the values "1234 Street" with "Test Data". Different people have different address lines and i want to replace with a fixed value to mask the file. I was trying to use sed... (7 Replies)
Discussion started by: dr46014
7 Replies
BBE(1)																	    BBE(1)

NAME
bbe - binary block editor SYNOPSIS
bbe [options]... DESCRIPTION
bbe is a sed-like editor for binary files. It performs binary transformations on the blocks of input stream. OPTIONS
bbe accepts the following options: -b, --block=BLOCK Block definition. -e, --expression=COMMAND Add the COMMAND to the commands to be executed. -f, --file=script-file Add the contest of script-file to commands. -o, --output=name Write output to name instead of standard output. -s, --suppress Suppress normal output, print only block contents. -?, --help List all available options and their meanings. -V, --version Show version of program. BLOCK can be defined as: N:M Where N'th byte starts a M bytes long block (first byte is 0). :M Block length in input stream is M. /start/:M String start starts M bytes long block. /start/:/stop/ String start starts the block and block ends to string stop. /start/: String start starts the block and block will end at next occurence of start. Only the first start is included to the block. :/stop/ Block starts at the beginning of input stream (or at the end of previous block) and ends at the next occurrence of stop. String stop will be included to the block. Special value '$' of M means the end of stream. Default value for block is 0:$, meaning the whole input stream. Both start and stop strings are included to block. Nonprintable characters can be escaped as nn decimal xnn hexadecimal nnn octal Character '' can be escaped as '\'. Escape codes 'a','',' ',' ','v','f',' ' and ';' can also be used. Length (N and M) can be defined as decimal (n), hexadecimal (xn) or octal (0n) value. COMMAND SYNOPSIS
bbe has two type of commands: block and byte commands, both are allways related to current block. That means that the input stream outside of block remains untouched. Block commands D [n] Delete the n'th block. Without n, all found blocks are deleted from the output stream. I string Insert the string string before the block. A string Append the string string at the end of block. J n Skip n blocks before executing commands after this command. L n Leave all blocks unmodified starting from block number n. Affects only commands after this command. N Before printing a block, the file name in which the block starts is printed. F f Before printing a block, the input stream offset at the begining of the block is printed. f can be H, D or O for Hexadecimal, Deci- mal or Octal format of offset. B f Before printing a block, the block number is printed (first block == 1) f can be H, D or O for Hexadecimal, Decimal or Octal format of block number. > file Before printing a block, the contents of file file is printed. < file After printing a block, the contents of file file is printed. Byte commands n in byte commands is offset from the beginning of current block (starts from zero). r n string Replace bytes starting at position n with string string. i n string Insert string starting at position n. p format The contents of block is printed in format defined by format. format can have any of the formats H, D, O, A and B for Hexadecimal, Decimal, Octal, Asciii and Binary. s/search/replace/ Replace all occurrences of search with replace. y/source/dest/ Translate bytes in source to the corresponding bytes in dest. Source and dest must have equal length. d n m|* Delete m bytes starting from the offset n. If * is defined instead of m, then all bytes starting from n are deleted. c from to Convert bytes from format from to to. Currently supported formats are: BCD Binary coded decimal ASC Ascii j n Commands after the j-command are ignored for first n bytes of the block. l n Commands after the l-command are ignored from n'th byte of the block. w file Write bytes from the current block to file file. Commands before w-command have effect to what will be written. %B or %nB in file will be replaced by current block number. n in %nB is field length, leading zero in n causes the block number to be left padded with zeroes. & c Performs binary and with c. | c Performs binary or with c. ^ c Performs binary xor with c. ~ Performs binary negation. u n c All bytes from start of the block to offset n are replaced by c. f n c All bytes starting from offset n to end of the block are replaced by c. x Exchange the contents of nibbles (half an octet) of bytes. Nonvisible characters in strings can be escaped same way as in block definition strings. Character '/' in s and y commands can be any visi- ble character. Note that the D, A, I, F, B, c, s, i, y, p, <, > and d commands cause the length of input and output streams to be different. EXAMPLES
bbe -e "s/c:\temp\data1.txt/c:\temp\data2.txt/" file1 all occurences of "c: empdata1.txt" in file file1 are changed to "c: empdata2.txt" bbe -b 0420:16 -e "r 4 x12x4a" file1 Two bytes starting at fifth byte of a 16 byte long block starting at offset 0420 (octal) in file1 are changed to hexadecimal values 12 and 4a. bbe -b :16 -e "A x0a" file1 Newline is added after every block, block length is 16. SEE ALSO
sed(1). AUTHOR
Timo Savinen <tjsa@iki.fi> 2006-11-02 BBE(1)
All times are GMT -4. The time now is 07:26 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy