Since we don't know exactly what platform you're running on, my proposal endeavours to restrict itself to ubiquitous POSIX functionality. Also, it makes the same assumptions you've made. Specifically:
Quote:
Originally Posted by sameucho
I simplified the task supposing there will not be another occurence of such combination of 'sign' bytes before the desired values which are to be collected.
I did not test the following code, but I did my best to mind the details. If it doesn't work, please post any error messages, how the behavior deviates from what's expected, and which operating system(s) this needs to run on. Also, if the following code is insufficient, it would help to have a sample of the binary data to test against (upload it somewhere and link us). I'm feeling a bit lazy today and I'm not interested in creating my own mock data (although I suppose I could reverse the hexdump with AWK if I were feeling industrious).
Since AWK is not required to support hexadecimal constants or numeric strings, od dumps byte values in base 10. tr is used to replace all spaces and tabs with newlines. AWK then reads one line at a time, with each line either containing one byte value in decimal or nothing at all.
The AWK script:
* Discard a leading blank line if present (a by-product of leading whitespace in od output).
* i keeps track of which state is sought.
* pr_bytes() reads the value of the current byte and reads that many subsequent bytes. The bytes are stored in s as a space-delimited string terminated by a newline.
* If at any point a byte value does not match what's expected, the line will fallthrough to the bottom, where i and s are reset.
* The output is two lines of text per record. Line 1 corresponds to what you've referred to as X, line 2 to Y. Each line is a space-delimited sequence of hexadecimal byte values.
Regards,
Alister
Last edited by alister; 10-12-2011 at 04:45 PM..
Reason: Added missing getline and corrected conditional
Hi All,
Can someone please help me write a script for the following requirement in awk, grep, sed or perl.
Buuuu xxx bbb
Kmmmm rrr ssss uuuu
Kwwww zzzz ccc
Roooowwww eeee
Bxxxx jjjj dddd
Kuuuu eeeee nnnn
Rpppp cccc vvvv cccc
Rhhhhhhyyyy tttt
Lhhhh rrrrrssssss
Bffff mmmm iiiii
Ktttt... (5 Replies)
HI I HAVE A PROBLEM,MY SOURCE FILE IS OF PATTERN
S1,E-Certified,29,29,2.7,Certified,4,3,2.7,,0,0,0
S2,Certified,4,3,2.7,,0,0,0,,0
S3,E-Certified,29,29,2.7,,0,0,0
S4,,0,0,0,,0,0,0,,0,0,0,,0,0,0
AND THE EXPECTED OUTPUT IS
S1,E-Certified,29,29,2.7
S1,Certified,4,3,2.7... (1 Reply)
My input:
File_1:
2000_t
g1110.b1
abb.1
2001_t
g1111.b1
abb.2
abb.2
g1112.b1
abb.3
2002_t
.
.
File_2:
2000_t Ali england 135
abb.1 Zoe british 150
2001_t Ali england 305
g1111.b1 Lucy russia 126 (6 Replies)
Hello All,
I am here again scratching my head on pattern selection with special characters.
I have a large file having around 200 entries and i have to select a single line based on a pattern.
I am able to do that:
Code:
cat mytest.txt | awk -F: '/myregex/ { print $2}'
... (6 Replies)
Hi,
I would like to delete lines in /etc/hosts on few workstations, basically I want to delete all the lines for a list of machines like this :
for HOST in $(cat stations.lst |uniq)
do
# echo -n "$HOST"
if ping -c 1 $HOST > /dev/null 2>&1
then
HOSTNAME_val=`rsh $HOST "sed... (3 Replies)
Hello,
:wall:
I have a 12 column csv file. I wish to delete the entire line if column 7 = hello and column 12 = goodbye. I have tried everything that I can find in all of my ref books.
I know this does not work
/^*,*,*,*,*,*,"hello",*,*,*,*,"goodbye"/d
Any ideas?
Thanks
Please... (2 Replies)
I have an input file which is similar to what I have shown below.
Pattern : Data followed by two blank lines followed by data again followed by two blank lines followed by data again etc..
The first three lines after every blank line combination(2 blank lines between data) should be... (2 Replies)
Using the file below, which will always have the first indicated by the digit after the -
and last id in it, indicated by the digit after the -, I am trying to use awk
to print the missing line or lines in file following the pattern of the previous line.
For example, in the file below the next... (4 Replies)
In the awk, thanks you @RavinderSingh13, for the help in below, hopefully it is close as I am trying to update the value in $12 of the tab-delimeted file2 with the matching value in $1 of the space delimeted file1. I have added comments for each line as well. Thank you :).
awk
awk '$12 ==... (10 Replies)
Hi All,
I want to create a new file based on certain conditions and copy only those conditioned data to new file.
Input Data is as it looks below.
ORDER|Header|Add|32|32|1616
ORDER|Details1.........
ORDER|Details2.........
ORDER|Details3.........
ORDER|Details4............ (10 Replies)
Discussion started by: grvk101
10 Replies
LEARN ABOUT MOJAVE
otp
otp(n) RFC 2289 A One-Time Password System otp(n)
__________________________________________________________________________________________________________________________________________________NAME
otp - One-Time Passwords
SYNOPSIS
package require Tcl 8.2
package require otp ?1.0.0?
::otp::otp-md4 ?-hex? ?-words? -seed seed -count count data
::otp::otp-md5 ?-hex? ?-words? -seed seed -count count data
::otp::otp-sha1 ?-hex? ?-words? -seed seed -count count data
::otp::otp-rmd160 ?-hex? ?-words? -seed seed -count count data
_________________________________________________________________DESCRIPTION
This package is an implementation in Tcl of the One-Time Password system as described in RFC 2289 (1). This system uses message-digest
algorithms to sequentially hash a passphrase to create single-use passwords. The resulting data is then provided to the user as either
hexadecimal digits or encoded using a dictionary of 2048 words. This system is used by OpenBSD for secure login and can be used as a SASL
mechanism for authenticating users.
In this implementation we provide support for four algorithms that are included in the tcllib distribution: MD5 (2), MD4 (3), RIPE-MD160
(4) and SHA-1 (5).
COMMANDS
::otp::otp-md4 ?-hex? ?-words? -seed seed -count count data
::otp::otp-md5 ?-hex? ?-words? -seed seed -count count data
::otp::otp-sha1 ?-hex? ?-words? -seed seed -count count data
::otp::otp-rmd160 ?-hex? ?-words? -seed seed -count count data
EXAMPLES
% otp::otp-md5 -count 99 -seed host67821 "My Secret Pass Phrase"
(binary gibberish)
% otp::otp-md5 -words -count 99 -seed host67821 "My Secret Pass Phrase"
SOON ARAB BURG LIMB FILE WAD
% otp::otp-md5 -hex -count 99 -seed host67821 "My Secret Pass Phrase"
e249b58257c80087
REFERENCES
[1] Haller, N. et al., "A One-Time Password System", RFC 2289, February 1998. http://www.rfc-editor.org/rfc/rfc2289.txt
[2] Rivest, R., "The MD5 Message-Digest Algorithm", RFC 1321, MIT and RSA Data Security, Inc, April 1992. (http://www.rfc-edi-
tor.org/rfc/rfc1321.txt)
[3] Rivest, R., "The MD4 Message Digest Algorithm", RFC 1320, MIT, April 1992. (http://www.rfc-editor.org/rfc/rfc1320.txt)
[4] H. Dobbertin, A. Bosselaers, B. Preneel, "RIPEMD-160, a strengthened version of RIPEMD" http://www.esat.kuleuven.ac.be/~cosi-
cart/pdf/AB-9601/AB-9601.pdf
[5] "Secure Hash Standard", National Institute of Standards and Technology, U.S. Department Of Commerce, April 1995.
(http://www.itl.nist.gov/fipspubs/fip180-1.htm)
BUGS, IDEAS, FEEDBACK
This document, and the package it describes, will undoubtedly contain bugs and other problems. Please report such in the category otp of
the Tcllib SF Trackers [http://sourceforge.net/tracker/?group_id=12883]. Please also report any ideas for enhancements you may have for
either package and/or documentation.
SEE ALSO
SASL, md4, md5, ripemd160, sha1
KEYWORDS
hashing, message-digest, password, rfc 2289, security
CATEGORY
Hashes, checksums, and encryption
COPYRIGHT
Copyright (c) 2006, Pat Thoyts <patthoyts@users.sourceforge.net>
otp 1.0.0 otp(n)