我在使用Bash 4.4.23的GNU / Linux系统上,并且我的文件带有一些Bash变量:
例如。
export VARONE="var1"
export VARTWO="var2"
...
在其他文件中,我必须将${VARIABLE}
替换为{{VARIABLE}}
,扩展名为“ templates”文件夹下的“ .template”。
我尝试执行此命令:
cat varfile \
| grep export \
| awk -F '=' '{print $1}' \
| awk '{print $2}' \
| xargs -I var -- \
find templates -type f -iname "*.template" \
-exec sed 's/${var}/{{var}}/g' {} \;
但是我没有运气:(似乎sed与该LHS不匹配,实际上它会将原始文件打印为输出。
有人可以解释上面的命令出了什么问题吗?
答案 0 :(得分:1)
唯一的问题似乎是缺少def get_model(model):
estimator = tf.keras.estimator.model_to_estimator(model)
def serving():
inputs = {
'reviews': tf.placeholder(shape=[None, 100], dtype='float32')
}
preproc = inputs.copy()
return tf.estimator.export.ServingInputReceiver(preproc, inputs)
estimator.export_savedmodel('./test_export', serving)
标志和sed的未转义-i
。
这是带有上述修复程序的更简单,经过测试的初始管道:
$
为了保证,如果变量每行出现多次,我添加了sed -nE '/^export /{s///;s/([^=]+).*/\1/;p;}' varfile |
xargs -I var -- find templates -name '*.template' -exec sed -i '' 's/\${var}/{{var}}/g' {} +
标志。