首页 > 解决方案 > 如何在 foreach 循环中正确使用 sed

问题描述

如何sedfor循环中正确使用?我想遍历一个数组和每个循环,打开一个文件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

输出文件已创建但全部为空。

标签: bashshell

解决方案


我用这个替换它并且它有效:

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

推荐阅读