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調用中覆蓋輸入流的問題。 –