... Been there myself many times. Unfortunately, your solution won't work reliably. The timing of hexdump's output and awk's output isn't in anyway guaranteed.
...
Admitted. I noticed that myself in certain circumstances. Still I wanted to publish my "elaborate" construt, and be it as a discussion basis. The typecast feature offered by programming languages was bitterly missed in sed, awk, bash. Obviously they are too smart in variable handling.
Here's my attempt at a POSIX approach. It gives me the same result as the perl solution that I posted yesterday. It depends on the od command generating whitespace delimited, two-hexdigit numbers.
Regards,
Alister
Hi Hans,
You say that the # characters are unprintable characters, but from the output you say you want from your input ($astring = "xxxxxx ABC+10+\x39\x55\x12\x84\xA7\x9F\x2C\xB1\xFF\x12+DEF xxxx") we see that some of these bytes represent printable characters (assuming you're using a codeset with ASCII underpinnings). The hexadecimal escape codes \x39, \x55, and \x2C are the characters '9', 'U', and ',', respectively. This isn't necessarily bad, but none of the scripts that have been presented here so far will work correctly if one of these characters represented by a "#" is a newline character and these scripts may fail if the "x"s or "#"s contain a sequence that matches the form "ABC+<digits>+". And has already been stated, there is nothing we can do for you in a shell script if any of the bytes represented by a "#" is a null byte ('\x00').
As long as you can guarantee that there won't be any null bytes in the string except for the terminating null byte at the end of every string and can guarantee that exactly one substring of the form "ABC+<digits>+" will appear in echo string, the following script does that you have requested:
I realize this is a long script, but it is mostly comments. Note that some features used in the above script are only available in versions of ksh newer than November 16, 1988 and some of the od utiity's options used here weren't defined by the standards until 1992.
Presumably, you have a source that creates strings containing binary data so I won't worry about it here. It is easy to create strings like this with $'...' in recent versions of ksh, in a C or C++ program, and using the printf utility with hex escape sequences (but I assume if you're creating hex escape sequences to generate these strings, you don't need to convert them back to hex).
So, I have a folder, containing subdirs like this:
52334d50
52365245
524b4450
524f3350
52533950
52535050
52555550
now I want to go ahead and rename all those folder:
hex -> ascii (8 Replies)
Dear Ladies & Gents,
I have a requirement to delete all the log files in /var/log/test directory that are older than 10 days and their first line begin with "MSH" or "<?xml" or "FHS". I've put together the following BASH script, but it's erroring out:
for filename in $(find /var/log/test... (2 Replies)
Hello,
I have a question regarding extracting parts of a string and the meaning of # and % in the syntax. I created an example below.
# filename=/first/second/third/fourth
#
# echo $filename
/first/second/third/fourth
#
# echo "${filename##*/}"
fourth
#
# echo "${filename%/*}"... (3 Replies)
Hello.
Following recommendations for one of my threads, this is working perfectly :
#!/bin/bash
CNT=$( grep -c -e "some text 1" -e "some text 2" -e "some text 3" "/tmp/log_file.txt" )
Now I need a grep success for some thing like :
#!/bin/bash
CNT=$( grep -c -e "some text_1... (4 Replies)
I came across and unexpected behavior with redirections in tcsh. I know, csh is not best for redirections, but I'd like to understand what is happening here.
I have following script (called out_to_streams.csh):
#!/bin/tcsh -f
echo Redirected to STDOUT > /dev/stdout
echo Redirected to... (2 Replies)
logs:
"/home/abc/public_html/index.php"
"/home/abc/public_html/index.php"
"/home/xyz/public_html/index.php"
"/home/xyz/public_html/index.php"
"/home/xyz/public_html/index.php"
how to use "cut" or "awk" or "sed" to get the following result:
abc
abc
xyz
xyz
xyz (8 Replies)
Hello everyone
Sorry I have to add another sed question. I am searching a log file and need only the first 2 occurances of text which comes after (note the space) "string " and before a ",". I have tried
sed -n 's/.*string \(*\),.*/\1/p' filewith some, but limited success. This gives out all... (10 Replies)
i read the "cat" manpages,
but i could not find to tell it like
"read file XY.BIN from byte 1000 to byte 5000"
can somebody please point me into the right direction?
cat would be the ideal tool for my purpose, the way it behaves, but i miss this ranges option.
thanks for any input. (2 Replies)
Hi people,
i have a nice problem to solve..
in an text page i must change all the "*.php" occourences to the respective lowercase..
Example:
...
<tr><td>
<form action="outputEstrazione.php" method="get">
<table cellspacing='0,5' bgcolor='#000000'><tr><td>
<font size='2'... (5 Replies)