【发布时间】:2014-06-30 00:48:00
【问题描述】:
我一直在寻找一种单行方法,将模板文件中的匹配字符串替换为文件的 base64 字符串。所以在下面的模板文件中:
# config.template.yaml
is_real: "yes"
project_base64: {base64_string}
file_name: "project.tgz"
在一行中将{base64_string} 替换为base64 -w0 project.tgz 的输出。
我尝试使用 sed 如下:
sed s/{base64_string}/`base64 -w0 project.tgz`/ config.template.yaml > config.yaml
如果project.tgz 很小,这可以正常工作,但由于它实际上是几兆字节,我收到一个错误:
bash: /bin/sed: Argument list too long
【问题讨论】:
标签: templates unix command-line awk sed