bash - 如何在 foreach 循环中正确使用 sed
问题描述
如何sed
在for
循环中正确使用?我想遍历一个数组和每个循环,打开一个文件template.txt
,进行弹簧替换并将结果输出到文件中。例如:
values=( "val_1982" "val_1985" "val_1987" )
for i in "${values[@]}"
do
sed -e "s/\${VAL_ID}/$i/" \
-e "s/\${ENTRY}/"local"/" template.txt > outputfile_$i.txt
done
但我得到:
bash: template.txt: command not found
bash: template.txt: command not found
bash: template.txt: command not found
输出文件已创建但全部为空。
解决方案
我用这个替换它并且它有效:
for i in val_1982 val_1985 val_1987
do
sed -e "s/\${VAL_ID}/$i/" \
-e "s/\${ENTRY}/"local"/" template.txt > outputfile_$i.txt
done
推荐阅读
- java - 处理使用可完成期货的实体列表
- php - PHP 解析错误:语法错误,意外的 '$sourcecoin' (T_VARIABLE),期望 ',' 或 ';'
- c# - MediaPlayer 停止音频声音 C#
- python - 创建具有指定长度的列表并组合其他列表
- python - 尝试合并数据框时出现关键错误
- mpeg-dash - Shaka 打包程序不加密资产
- bash - 具有 ssh 连接的脚本在 crontab raspberry pi 中不起作用
- c++ - 当 xutility 错误发生时我必须做什么
- mongodb - 使用 mongo 连接器将数据从 mongodb 同步到 neo4j 时出现问题
- python - 如何修复预期
在python代码中