Sponsored Content
Top Forums Shell Programming and Scripting Converting parts of a string to "Hex" Post 302700649 by alister on Thursday 13th of September 2012 11:02:15 PM
Old 09-14-2012
Code:
perl -pe '$p=qr/ ABC\+([^+]+)\+/; /$p/; s/($p)(.{$1})/$1.join("",map{"\\x$_"}unpack("H2"x$2,$3))/e' file

Regards,
Alister

---------- Post updated at 11:02 PM ---------- Previous update was at 10:54 PM ----------

Quote:
Originally Posted by RudiC
OK, this was a pain in the neck ... <snip> ... but I'm out of patience now...
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.

With a 3 line sample file and stdout a terminal, the hexdump output for all three lines shows up after all of awk's output for those three lines.

With the same sample file and stdout redirected to a file, the hexdump output for all three lines occurs in the middle of the first line of awk output.

I'm almost certain that the consistent difference is a side effect of my awk implementation increasing buffering in the absence of interactivity.

Regards,
Alister

Last edited by alister; 09-14-2012 at 08:16 AM.. Reason: Forgot space in regexp
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

input string="3MMTQSZ348GGMZRQWMJM4SD6M";output string="3MMTQ-SZ348-GGMZR-QWMJM-4SD6

input string="3MMTQSZ348GGMZRQWMJM4SD6M" output string="3MMTQ-SZ348-GGMZR-QWMJM-4SD6M" using linux shell script (4 Replies)
Discussion started by: pankajd
4 Replies

2. Shell Programming and Scripting

How to apply a "tolower" AWK to a few parts of a document

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)
Discussion started by: marconet85
5 Replies

3. Shell Programming and Scripting

read parts of binary files by "ranges"

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)
Discussion started by: scarfake
2 Replies

4. Shell Programming and Scripting

Using sed to find text between a "string " and character ","

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)
Discussion started by: haggismn
10 Replies

5. Shell Programming and Scripting

how to use "cut" or "awk" or "sed" to remove a string

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)
Discussion started by: timmywong
8 Replies

6. Shell Programming and Scripting

tcsh - understanding difference between "echo string" and "echo string > /dev/stdout"

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)
Discussion started by: marcink
2 Replies

7. Shell Programming and Scripting

grep with "[" and "]" and "dot" within the search string

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)
Discussion started by: jcdole
4 Replies

8. UNIX for Dummies Questions & Answers

Extracting Parts of String "#" vs "%"

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)
Discussion started by: shah9250
3 Replies

9. Shell Programming and Scripting

Delete all log files older than 10 day and whose first string of the first line is "MSH" or "<?xml"

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)
Discussion started by: Hiroshi
2 Replies

10. Windows & DOS: Issues & Discussions

Convert "hex" foldername to "ascii"

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)
Discussion started by: pasc
8 Replies
STDBUF(1)						    BSD General Commands Manual 						 STDBUF(1)

NAME
stdbuf -- change standard streams initial buffering SYNOPSIS
stdbuf [-e bufdef] [-i bufdef] [-o bufdef] [command [...]] DESCRIPTION
stdbuf is used to change the initial buffering of standard input, standard output and/or standard error streams for command. It relies on libstdbuf(3) which is loaded and configured by stdbuf through environment variables. The options are as follows: -e bufdef Set initial buffering of the standard error stream for command as defined by bufdef (see BUFFER DEFINITION). -i bufdef Set initial buffering of the standard input stream for command as defined by bufdef (see BUFFER DEFINITION). -o bufdef Set initial buffering of the standard output stream for command as defined by bufdef (see BUFFER DEFINITION). BUFFER DEFINITION
Buffer definition is the same as in libstdbuf(3): "0" unbuffered "L" line buffered "B" fully buffered with the default buffer size size fully buffered with a buffer of size bytes (suffixes 'k', 'M' and 'G' are accepted) EXAMPLES
In the following example, the stdout stream of the awk(1) command will be fully buffered by default because it does not refer to a terminal. stdbuf is used to force it to be line-buffered so vmstat(8)'s output will not stall until the full buffer fills. # vmstat 1 | stdbuf -o L awk '$2 > 1 || $3 > 1' | cat -n SEE ALSO
libstdbuf(3), setvbuf(3) HISTORY
The stdbuf utility first appeared in FreeBSD 8.4. AUTHORS
The original idea of the stdbuf command comes from Padraig Brady who implemented it in the GNU coreutils. Jeremie Le Hen implemented it on FreeBSD. BSD
April 28, 2012 BSD
All times are GMT -4. The time now is 05:17 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy