In mijn bash script wil ik d.m.v. een properties file een template bijwerken. De name van de property correspondeert met wat ik in de template wil veranderen door zijn value. Van de "properties file" gebruik ik alleen de name=value regels (rest is content).
props.properties
template.html
Bash script
Het resultaat zou moeten zijn:
Echter het gaat niet goed met die $TMP_TPL (ook niet als ik daar een normale file voor gebruik). Het is nogal een constructie met die grep | awk + sed | sh... ik zou het graag horen hoe dit beter kan cq. hoe zoiets zou moeten.
props.properties
code:
1
2
3
4
5
6
| aaa=foo bbb=bar bar # header # paragraph |
template.html
code:
1
2
3
| bbb ccc aaa |
Bash script
code:
1
2
3
4
5
6
7
8
| TMP_TPL=`mktemp /tmp/my-tpl.XXXXX` cat template.html > $TMP_TPL grep ^[a-z]*=[a-z\ ]*$ props.properties | \ awk 'BEGIN { FS="="} {print "sed -e \"s/"$1"/"$2"/\" $TMP_TPL"}' | \ sh > $TMP_TPL cat $TMP_TPL |
Het resultaat zou moeten zijn:
code:
1
2
3
| bar bar ccc foo |
Echter het gaat niet goed met die $TMP_TPL (ook niet als ik daar een normale file voor gebruik). Het is nogal een constructie met die grep | awk + sed | sh... ik zou het graag horen hoe dit beter kan cq. hoe zoiets zou moeten.