Using sed to split hex string

Login or Register for Dates, Times and to Reply

Thread Tools Search this Thread
Top Forums UNIX for Beginners Questions & Answers Using sed to split hex string
# 1  
Using sed to split hex string


I'm looking to split the following hex string into rows of four elements.

I've tried the following but it doesn't seem to work. How can I tell sed to match based on a pair of number(s) and letter(s), and add a newline every 4 pairs?
In addition, I need to add another newline after every string has been processed.

echo "1C 50 A9 D3 8B B0 24 9C 14 1C 50 A9 D3 8B B0 24" | sed -nr 's/[0-9A-Z]{2}/\n/4p'
1C 50 A9
 8B B0 24 9C 14 1C 50 A9 D3 8B B0 24 9C 14

Expected output:

1C 50 A9 D3
8B B0 24 9C

14 1C 50 A9
D3 8B B0 24

# 2  
 | sed 's/\(\([0-9A-F][0-9A-F] \)\{4\}\)/\1\n/g'

# 3  
Insert a \n every 12 characters:
sed -nr 's/.{12}/&\n/gp'

If you really want to indentify 4 elements:
sed -nr 's/([0-9A-F]{2} ){4}/&\n/gp'

With BRE (no -r) it is like the previous solution:
sed -n 's/\([0-9A-F][0-9A-F] \)\{4\}/&\n/gp'

This User Gave Thanks to MadeInGermany For This Post:
# 4  
regex / wctype offer a "character class" for hex:

sed -nr 's/([[:xdigit:]]{2} ){4}/&\n/gp'

This User Gave Thanks to RudiC For This Post:
# 5  
echo "1C 50 A9 D3 8B B0 24 9C 14 1C 50 A9 D3 8B B0 24" |
fold -12 |
sed '2~2a\

1C 50 A9 D3 
8B B0 24 9C 

14 1C 50 A9 
D3 8B B0 24

Where the GNU extension '2~2' starts with line 2, then after each 2nd line adds a newline.

On a system like:
OS, ker|rel, machine: Linux, 3.16.0-7-amd64, x86_64
Distribution        : Debian 8.11 (jessie) 
bash GNU bash 4.3.30
fold (GNU coreutils) 8.23
sed (GNU sed) 4.2.2

Best wishes ... cheers, drl

Last edited by drl; 07-27-2019 at 10:25 AM..
# 6  
You might try as well
echo "1C 50 A9 D3 8B B0 24 9C 14 1C 50 A9 D3 8B B0 24" | tr ' ' $'\n' | paste -sd'   \n'

Login or Register for Dates, Times and to Reply

Previous Thread | Next Thread
Thread Tools Search this Thread
Search this Thread:
Advanced Search

Test Your Knowledge in Computers #90
Difficulty: Easy
If you open vi specify a path to a file that does not exist, vi will create a new, blank file at that location in the filesystem and open it.
True or False?

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

sed split string

Greetings, i have a string that looks like Network "123" "ABC" i need to make it look like: Network "123" Network "ABC" Help please? Thanks again Please use CODE tags when displaying sample input, sample output, and code segments (as required by forum rules). (2 Replies)
Discussion started by: hoyanet
2 Replies

2. Shell Programming and Scripting

Find and increment value in string of hex

I have a long string of hex (from ASN.1 data) where I need to find and change a particular hex value only and increment it. The hex pairs either side (84 and a7) of the value to increment will remain constant. i.e. "84 <length> <value_to_increment> a7" starting with 00. So end result: ... (11 Replies)
Discussion started by: securegooner
11 Replies

3. Shell Programming and Scripting

ksh : split hex number group

Hi, sry for poor english I have a group of hex number as : 4D40:4D42 I want so split this group in a list as : 4D40,4D41,4D42 i don't know how i can do this in ksh Thanks (5 Replies)
Discussion started by: jocazh
5 Replies

4. Shell Programming and Scripting

How to replace with "sed" some hex values by other hex values?

Assume I have a file \usr\home\\somedir\myfile123.txt and I want to replace all occurencies of the two (concatenated) hex values x'AD' x'A0' bytwo other (concatenated) hex values x'20' x'6E' How can I achieve this with the gnu sed tool? Additional question: Is there a way to let sed show... (1 Reply)
Discussion started by: pstein
1 Replies

5. Shell Programming and Scripting

String to HEX conversion in UNIX

i have this below string which i need to convert it to HEX. i have already tried it but it showing extra few things on it.. let me show what i have done and what is the output i am getting and what is the desired output the input string is "!\"\"\"\"\"\"\"!\"\"\"\"\"\"\"" which is... (4 Replies)
Discussion started by: vivek d r
4 Replies

6. Shell Programming and Scripting

split string using sed, perl

How can I split following input into stwo strings: Input: 1^~^2^~^3^~^4^~^5^~^6^~^7^~^8^~^9 Output: $string1 = 1^~^2^~^ $string2 = 3^~^4^~^5^~^6^~^7^~^8^~^9 Note: the length of string may vary, say upto 15. String 1 will contain only first two. string2 will contain... (10 Replies)
Discussion started by: som.nitk
10 Replies

7. Programming

how to use hex escape char with string in C?

I want it to ouput "abcd", but it dosen't. 1 #include<stdio.h> 2 int main() 3 { 4 printf("a\x62cd"); 5 } 6 gcc alarm.c -o alarm alarm.c: In function 'main': alarm.c:4:9: warning: hex escape sequence out of range It seems that the complier joint "cd" as part of... (8 Replies)
Discussion started by: vistastar
8 Replies

8. Programming

Hex string conversion?

Hello all. I need help... How can I cenvert this 42ec93df826c804ea531c56594db453d54daad4b to normal text? What convertor I have to use? Thanks. (12 Replies)
Discussion started by: escudo
12 Replies

9. Shell Programming and Scripting

Match hex value in string (Perl)

I am trying to match a character return from a website so that I can replace it. It is the '...' character (didnt even know it existed initially). The character apparently has the hex value of 2026, but in the script, attempting to substitute regular 3 periods is not working. What am I... (2 Replies)
Discussion started by: Guyverix
2 Replies

10. Programming

converting character string to hex string

HI Hi I have a character string which contains some special characters and I need it to display as a hex string. For example, the sample i/p string: ץA  g and the o/p should be : D7A5EF4100C5010067EFDBFD Any pointers or sample code pls. (5 Replies)
Discussion started by: axes
5 Replies