#! /bin/awk # Convert byte hex dump without addresses to 0x9abcdef type # format suitable for initalization of C array. # Works well with small amount of data like signatures. Large amounts # probably extremely slow. # hex dump can be obtaned with od -A n -t x1 -v filename. { data = data $0 } END { gsub(/[ \n\t]+/, "", data); output_uints(data); printf("\n"); output_uchar(data); printf("\n"); } function output_uints(hex_string) { str_length = length(hex_string); for( i=1; i < str_length; i=i+8){ printf("0x%s,", substr(hex_string, i, 8)); if(0 == ((i+7)%32)) printf("\n"); } } function output_uchar(hex_string) { str_length = length(hex_string); for( i=1; i < str_length; i=i+2){ printf("0x%s,", substr(hex_string, i, 2)); if(0 == ((i+1)%16)) printf("\n"); } }