The template is 48 bytes. Add 16 bytes for an [offset,char] table. Maybe another 30 bytes (let's be generous and round that up to 32) for code to pull the commandline parameter, do the indexing and template modification, write the output, and exit. 96 bytes of code. Add 64 bytes of minimal ELF headers[2] and you're still well below 200 bytes.
I don't have an environment at the moment that doesn't do ELF files, so I just tried it with 16-bit DOS and ended up at... 95 bytes:
I wasn't trying very hard so someone will probably find an even smaller version, and it was just for fun since it doesn't meet the rules anyway.
[1] http://www.hugi.scene.org/compo/compoold.htm
[2] http://www.muppetlabs.com/~breadbox/software/tiny/teensy.htm...
It was the first time I really messed around with x86 assembly and I learned a lot during the progress :)
Edit: Wording
Edit2: Also note that for this challenge you need to submit NASM assembly, and not the resulting binary. So you can't resort to hex editing the binary itself.
142 bytes: http://timelessname.com/elfbin/
45 bytes: http://www.muppetlabs.com/~breadbox/software/tiny/teensy.htm...