Friends, I am looking for a small script which generates HEX sequence. Input to the script is starting hex number - Group ID and number of members a group should have and total groups.
e.g: Here we are generating 2 groups with 4 Members each starting with hex 036A.
Output:
Group ID 036A, members below;
members 036B:036D;
Group ID 036E, members below;
members 036F:0371;
Help is heartily appreciated
---------- Post updated at 06:54 AM ---------- Previous update was at 06:51 AM ----------
Output in following format will also do:
Group ID 036A, members below;
member 036B
member 036C
member 036D
Group ID 036E, members below;
member 036F
member 0370
member 0371
$ echo 036A 4 2| ruby -e 'st,m,g=gets.split;m=m.to_i;g=g.to_i;1.upto(m*g){|x|h="0"+(st.hex+x-1).to_s(16);puts ((x-1)%m==0)?"Group ID #{h}, members below":"member #{h}"}'
Group ID 036a, members below
member 036b
member 036c
member 036d
Group ID 036e, members below
member 036f
member 0370
member 0371
If your awk implementation supports hexadecimal literals (posix does not require this):
#!/bin/sh
# Usage: scriptname start-id group-count member-count
awk -v s=0x$1 -v g=$2 -v m=$3 '
BEGIN {
for (i=0; i<m*g; i++)
printf (i%m==0 ? "Group ID %.4X, members below;" : "member %.4X") "\n", s+i
}'
$ ./hexgroups.sh 036A 2 4
Group ID 036A, members below;
member 036B
member 036C
member 036D
Group ID 036E, members below;
member 036F
member 0370
member 0371
Updated: seems I misunderstand. Anyway put the code here.
cat infile
Group ID 036A, members below;
members 036B:036D;
Group ID 036E, members below;
members 036F:0371;
awk -F"[:; ]" '/^members/ {for (i=strtonum("0x"$2);i<=strtonum("0x"$3);i++) printf "%s %04X\n", $1,i;next}1' infile
Group ID 036A, members below;
member 036B
member 036C
member 036D
Group ID 036E, members below;
member 036F
member 0370
member 0371
---------- Post updated at 12:56 PM ---------- Previous update was at 12:54 PM ----------
if anybody has suggestion which produces o/p in the following format that would be great help
Group ID 036A, members below;
members 036B:036D;
Group ID 036E, members below;
members 036F:0371
---------- Post updated at 02:12 PM ---------- Previous update was at 12:56 PM ----------
bartus11;
Your script works like a charm. can you update to give me o/p in following format. O/P seems little funny but that is how my programme works...appreciate help
Group ID 036E, members below;
members 036F:0371 to group ID 036E