0
我想在makefile中使用sed,如下所示。但它似乎并没有产生修改后的文件。我已经尝试了shell中的sed命令并确保它可以正常工作。在makefile中使用sed
ana:
-for ana1 in $(anas) ; do \
for ana2 in $(anas) ; do \
sed "s/STF1/$$ana1/g" ./planalysis/src/analysis.arr > ./planalysis/src/spanalysis.arr ; \
sed "s/STF2/$$ana2/g" ./planalysis/src/spanalysis.arr > ./planalysis/src/spanalysis.arr ; \
# ... perform some analysis with the modified file..
# ...
done \
done
有什么我做错了吗?
我认为,让可能不是工具为此使用。 Make用于描述如何将文件或文件转换为输出文件。 ana:输出与任何输入文件都没有明确关联。一个简单的bash脚本应该适用于此。如果你想让make来告诉什么时候运行bash脚本,那么这样做,但不要破坏逻辑循环。 Make应该像这样读取:ana依赖于x y和y。有你如何把x和z和从他们做出ana。 –
您可以将两个sed命令合并为一个:'sed -e“s/STF1/$$ ana1/g”-e“s/STF2/$$ ana2/g”./planalysis/src/analysis.arr> ./ planalysis/src目录/ spanalysis.arr'。这将改善性能并解决在第二次sed调用中覆盖输入流的问题。 –