Skip to content

Instantly share code, notes, and snippets.

@oguz-ismail
Created July 24, 2024 13:17
Show Gist options
  • Save oguz-ismail/039274d94fab6e6e7d2d778be7db49da to your computer and use it in GitHub Desktop.
Save oguz-ismail/039274d94fab6e6e7d2d778be7db49da to your computer and use it in GitHub Desktop.
od -A n -v -t u1 | awk '
BEGIN {
conv[0] = "/*%s*/ %s/4 /*%s*/"
conv[1] = "16*(%s%%4) + %s/16 /*%s*/"
conv[2] = "4*(%s%%16) + %s/64\n%s%%64"
tail[0] = "16*(%s%%4)\n64\n64"
tail[1] = "4*(%s%%16)\n64"
tail[2] = "/*%s*/"
state = 2
}
{
for (i = 1; i <= NF; i++) {
printf conv[state = (state+1)%3] "\n", prev, $i, $i
prev = $i
}
}
END {
printf tail[state] "\n", prev
}' | bc | awk '
BEGIN {
enc[0] = "A"; enc[22] = "W"; enc[44] = "s"
enc[1] = "B"; enc[23] = "X"; enc[45] = "t"
enc[2] = "C"; enc[24] = "Y"; enc[46] = "u"
enc[3] = "D"; enc[25] = "Z"; enc[47] = "v"
enc[4] = "E"; enc[26] = "a"; enc[48] = "w"
enc[5] = "F"; enc[27] = "b"; enc[49] = "x"
enc[6] = "G"; enc[28] = "c"; enc[50] = "y"
enc[7] = "H"; enc[29] = "d"; enc[51] = "z"
enc[8] = "I"; enc[30] = "e"; enc[52] = "0"
enc[9] = "J"; enc[31] = "f"; enc[53] = "1"
enc[10] = "K"; enc[32] = "g"; enc[54] = "2"
enc[11] = "L"; enc[33] = "h"; enc[55] = "3"
enc[12] = "M"; enc[34] = "i"; enc[56] = "4"
enc[13] = "N"; enc[35] = "j"; enc[57] = "5"
enc[14] = "O"; enc[36] = "k"; enc[58] = "6"
enc[15] = "P"; enc[37] = "l"; enc[59] = "7"
enc[16] = "Q"; enc[38] = "m"; enc[60] = "8"
enc[17] = "R"; enc[39] = "n"; enc[61] = "9"
enc[18] = "S"; enc[40] = "o"; enc[62] = "+"
enc[19] = "T"; enc[41] = "p"; enc[63] = "/"
enc[20] = "U"; enc[42] = "q"; enc[64] = "="
enc[21] = "V"; enc[43] = "r"
}
{
printf "%s", enc[$0]
}
END {
printf "\n"
}' | fold -w 76
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment