私は以下のようにmakefileにsedを使用しようとしています。しかし、それは修正されたファイルを生成していないようです。私はシェルでsedコマンドを試して、それが動作することを確認しました。メイクファイルで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
私が間違っていることはありますか?あなたが期待するwhst
私はメイクツールではないかもしれないと思いますこのために使用する。 Makeは、ファイルを出力ファイルに変換する方法を記述するために使用されます。 ana:出力が入力ファイルに明確に結びついていない。シンプルなbashスクリプトはうまくいくはずです。 bashスクリプトをいつ実行するかを教えるためにmakeを関与させたいが、ループロジックを作るためにmakeをmangleしないでください。 makeは次のように読むべきです:anaはx yとyに依存します。どのようにx yとzを取ってそれらからanaを作るかがあります。 –
2つのsedコマンドを1つにマージすることができます: 'sed -e"/STF1/$$ ana1/g "-e"/STF2/$$ ana2/g "./planalysis/src/analysis.arr> ./計画/ src/spanalysis.arr'。これにより、パフォーマンスが改善され、2番目の 'sed'呼び出しで入力ストリームを上書きする問題を解決します。 –