Base64 decode data: Difference between revisions
Content added Content deleted
(added RPL) |
(Add ed example) |
||
Line 745: | Line 745: | ||
<pre> |
<pre> |
||
base64=VG8gZXJyIGlzIGh1bWFuLCBidXQgdG8gcmVhbGx5IGZvdWwgdGhpbmdzIHVwIHlvdSBuZWVkIGEgY29tcHV0ZXIuCiAgICAtLSBQYXVsIFIuIEVocmxpY2g=, bytes=0x546F206572722069732068756D616E2C2062757420746F207265616C6C7920666F756C207468696E677320757020796F75206E656564206120636F6D70757465722E0A202020202D2D205061756C20522E204568726C696368 |
base64=VG8gZXJyIGlzIGh1bWFuLCBidXQgdG8gcmVhbGx5IGZvdWwgdGhpbmdzIHVwIHlvdSBuZWVkIGEgY29tcHV0ZXIuCiAgICAtLSBQYXVsIFIuIEVocmxpY2g=, bytes=0x546F206572722069732068756D616E2C2062757420746F207265616C6C7920666F756C207468696E677320757020796F75206E656564206120636F6D70757465722E0A202020202D2D205061756C20522E204568726C696368 |
||
</pre> |
|||
=={{header|Ed}}== |
|||
This solution essentially hardcodes both Base64 chars and the byte->ASCII transformation, because [[Ed]] has no way to transform things other than text substitution. Still, the implementation is less than 200 lines long, which is a pretty compact script. |
|||
<syntaxhighlight> |
|||
H |
|||
,p |
|||
g/.*/s/\B/ /g |
|||
g/\b=\b/s// 000000 /g |
|||
g/\bA\b/s// 000000 /g |
|||
g/\bB\b/s// 000001 /g |
|||
g/\bC\b/s// 000010 /g |
|||
g/\bD\b/s// 000011 /g |
|||
g/\bE\b/s// 000100 /g |
|||
g/\bF\b/s// 000101 /g |
|||
g/\bG\b/s// 000110 /g |
|||
g/\bH\b/s// 000111 /g |
|||
g/\bI\b/s// 001000 /g |
|||
g/\bJ\b/s// 001001 /g |
|||
g/\bK\b/s// 001010 /g |
|||
g/\bL\b/s// 001011 /g |
|||
g/\bM\b/s// 001100 /g |
|||
g/\bN\b/s// 001101 /g |
|||
g/\bO\b/s// 001110 /g |
|||
g/\bP\b/s// 001111 /g |
|||
g/\bQ\b/s// 010000 /g |
|||
g/\bR\b/s// 010001 /g |
|||
g/\bS\b/s// 010010 /g |
|||
g/\bT\b/s// 010011 /g |
|||
g/\bU\b/s// 010100 /g |
|||
g/\bV\b/s// 010101 /g |
|||
g/\bW\b/s// 010110 /g |
|||
g/\bX\b/s// 010111 /g |
|||
g/\bY\b/s// 011000 /g |
|||
g/\bZ\b/s// 011001 /g |
|||
g/\ba\b/s// 011010 /g |
|||
g/\bb\b/s// 011011 /g |
|||
g/\bc\b/s// 011100 /g |
|||
g/\bd\b/s// 011101 /g |
|||
g/\be\b/s// 011110 /g |
|||
g/\bf\b/s// 011111 /g |
|||
g/\bg\b/s// 100000 /g |
|||
g/\bh\b/s// 100001 /g |
|||
g/\bi\b/s// 100010 /g |
|||
g/\bj\b/s// 100011 /g |
|||
g/\bk\b/s// 100100 /g |
|||
g/\bl\b/s// 100101 /g |
|||
g/\bm\b/s// 100110 /g |
|||
g/\bn\b/s// 100111 /g |
|||
g/\bo\b/s// 101000 /g |
|||
g/\bp\b/s// 101001 /g |
|||
g/\bq\b/s// 101010 /g |
|||
g/\br\b/s// 101011 /g |
|||
g/\bs\b/s// 101100 /g |
|||
g/\bt\b/s// 101101 /g |
|||
g/\bu\b/s// 101110 /g |
|||
g/\bv\b/s// 101111 /g |
|||
g/\bw\b/s// 110000 /g |
|||
g/\bx\b/s// 110001 /g |
|||
g/\by\b/s// 110010 /g |
|||
g/\bz\b/s// 110011 /g |
|||
g/\b0\b/s// 110100 /g |
|||
g/\b1\b/s// 110101 /g |
|||
g/\b2\b/s// 110110 /g |
|||
g/\b3\b/s// 110111 /g |
|||
g/\b4\b/s// 111000 /g |
|||
g/\b5\b/s// 111001 /g |
|||
g/\b6\b/s// 111010 /g |
|||
g/\b7\b/s// 111011 /g |
|||
g/\b8\b/s// 111100 /g |
|||
g/\b9\b/s// 111101 /g |
|||
g/\b=\b/s// 000000 /g |
|||
g/\b\+\b/s// 111110 /g |
|||
g/\b\/\b/s// 111111 /g |
|||
g/[[:space:]]/s///g |
|||
g/[01]{8}/s// & /g |
|||
g/00000000/s///g |
|||
g/00001010/s//\ |
|||
/g |
|||
g/00100000/s// /g |
|||
g/00100001/s//!/g |
|||
g/00100010/s//"/g |
|||
g/00100011/s//#/g |
|||
g/00100100/s//$/g |
|||
g/00100101/s//%/g |
|||
g/00100110/s//&/g |
|||
g/00100111/s//'/g |
|||
g/00101000/s//(/g |
|||
g/00101001/s//)/g |
|||
g/00101010/s//*/g |
|||
g/00101011/s//+/g |
|||
g/00101100/s//,/g |
|||
g/00101101/s//-/g |
|||
g/00101110/s//./g |
|||
g/00101111/s////g |
|||
g/00110000/s//0/g |
|||
g/00110001/s//1/g |
|||
g/00110010/s//2/g |
|||
g/00110011/s//3/g |
|||
g/00110100/s//4/g |
|||
g/00110101/s//5/g |
|||
g/00110110/s//6/g |
|||
g/00110111/s//7/g |
|||
g/00111000/s//8/g |
|||
g/00111001/s//9/g |
|||
g/00111010/s//:/g |
|||
g/00111011/s//;/g |
|||
g/00111100/s//</g |
|||
g/00111101/s//=/g |
|||
g/00111110/s//>/g |
|||
g/00111111/s//?/g |
|||
g/01000000/s//@/g |
|||
g/01000001/s//A/g |
|||
g/01000010/s//B/g |
|||
g/01000011/s//C/g |
|||
g/01000100/s//D/g |
|||
g/01000101/s//E/g |
|||
g/01000110/s//F/g |
|||
g/01000111/s//G/g |
|||
g/01001000/s//H/g |
|||
g/01001001/s//I/g |
|||
g/01001010/s//J/g |
|||
g/01001011/s//K/g |
|||
g/01001100/s//L/g |
|||
g/01001101/s//M/g |
|||
g/01001110/s//N/g |
|||
g/01001111/s//O/g |
|||
g/01010000/s//P/g |
|||
g/01010001/s//Q/g |
|||
g/01010010/s//R/g |
|||
g/01010011/s//S/g |
|||
g/01010100/s//T/g |
|||
g/01010101/s//U/g |
|||
g/01010110/s//V/g |
|||
g/01010111/s//W/g |
|||
g/01011000/s//X/g |
|||
g/01011001/s//Y/g |
|||
g/01011010/s//Z/g |
|||
g/01011011/s//[/g |
|||
g/01011100/s//\/g |
|||
g/01011101/s//]/g |
|||
g/01011110/s//^/g |
|||
g/01011111/s//_/g |
|||
g/01100000/s//`/g |
|||
g/01100001/s//a/g |
|||
g/01100010/s//b/g |
|||
g/01100011/s//c/g |
|||
g/01100100/s//d/g |
|||
g/01100101/s//e/g |
|||
g/01100110/s//f/g |
|||
g/01100111/s//g/g |
|||
g/01101000/s//h/g |
|||
g/01101001/s//i/g |
|||
g/01101010/s//j/g |
|||
g/01101011/s//k/g |
|||
g/01101100/s//l/g |
|||
g/01101101/s//m/g |
|||
g/01101110/s//n/g |
|||
g/01101111/s//o/g |
|||
g/01110000/s//p/g |
|||
g/01110001/s//q/g |
|||
g/01110010/s//r/g |
|||
g/01110011/s//s/g |
|||
g/01110100/s//t/g |
|||
g/01110101/s//u/g |
|||
g/01110110/s//v/g |
|||
g/01110111/s//w/g |
|||
g/01111000/s//x/g |
|||
g/01111001/s//y/g |
|||
g/01111010/s//z/g |
|||
g/01111011/s//{/g |
|||
g/01111100/s//|/g |
|||
g/01111101/s//}/g |
|||
g/01111110/s//~/g |
|||
g/[ ][ ](.)[ ][ ]/s//\1/g |
|||
,p |
|||
Q |
|||
</syntaxhighlight> |
|||
{{out}} |
|||
<pre> |
|||
cat base64-decode.ed | ed -E base64-decode.input |
|||
117 |
|||
VG8gZXJyIGlzIGh1bWFuLCBidXQgdG8gcmVhbGx5IGZvdWwgdGhpbmdzIHVwIHlvdSBuZWVkIGEgY29tcHV0ZXIuCiAgICAtLVBhdWwgUi5FaHJsaWNo |
|||
To err is human, but to really foul things up you need a computer. |
|||
--Paul R.Ehrlich |
|||
</pre> |
</pre> |
||