Temple
Sick of sed? Peaked about perl? Use temple to substitute your variables!

Installation
Binaries
I have pre-built binaries for several platform already. They are available on the releases page.
Source
If you have go v1.6 installed, then you can build the binary with the following command:
go install docwhat.org/temple
Usage
Usage: temple <template-file>
A simple templating engine
Arguments:
<template-file> The template file to use ($TEMPLE_TEMPLATE_FILE)
Flags:
-h, --help Show context-sensitive help.
--version Show version information
-d, --data=DATA-FILE A YAML or JSON file to use via the {{data.<foo>}} interface ($TEMPLE_DATA_FILE)
-H, --html Use HTML templating instead of text templating ($TEMPLE_USE_HTML)
Note that the DATA file must have an object at the top level. You cannot use a bare string or an array.
JSON Example:
{
"key": "value",
"key2": 2
}
YAML Example:
key: "value"
key2: 2
Template Syntax
For complete documentation, read go's text/template and html/template.
Sprig Functions
Temple supports the complete list of Sprig functions.
Data Sources
{{hostname}} -- The systems fully qualified domain name.
{{uid}} -- UID of the user running temple.
{{gid}} -- GID of the user running temple.
{{euid}} -- Effective UID of the user running temple.
{{egid}} -- Effective GID of the user running temple.
{{pwd}} -- The current working directory.
{{json}} -- Access to your JSON data. Use dot notation to get access to items. e.g. {{json.authors.greenwood.first_name}}
Functions
{{index <expr> 99}} -- The 99th item of the array <expr>.
{{<expr> | js}} -- <expr> escaped/quoted for JavaScript & JSON.
{{<expr> | html}} -- <expr> escaped/quoted for HTML.
{{<expr> | urlquery}} -- <expr> escaped/quoted for a URL quoting. i.e. replacing spaces with + and using %NN syntax.
{{<expr> | shellquote}} -- <expr> escaped/quoted for POSIX shells.
{{<expr> | len}} -- The length of the <expr>.
Flow Control
{{if <expr>}}true string{{else}}false string{{end}} -- If/Else syntax. The {{else}} is optional.
{{range <array>}} item: {{.}} {{else}} The list is empty {{end}} -- Iterate over <array>. The {{else}} is optional.
Miscellaneous
{{<expr> -}} -- Trim whitespace to the right. e.g. {{1 -}} .0 becomes 1.0.
{{- <expr>}} -- Trim whitespace to the left.
{{- <expr> -}} -- Trim whitespace to the right and left.
{{/* comment */}} -- Comments!
Thanks