Makefileを使用してテキストをファイルにプリペンドしようとしています。ターミナルで以下のbashコマンドの作品:Makefileのファイルにテキストを先頭に付けます。
echo -e "DATA-Line-1\n$(cat input)" > input
しかし、私はMakefileの中で上記のコマンドを入れたときに、それは動作しません:
copyHeader:
@echo -e "DO NOT EDIT THIS FILE \n$(cat input)" > input
私は予想通り$(猫の入力)が動作しないと思いますMakefileの中にあります。
sedコマンドを実行するとエラーが表示されます。sed:読み取り不可1 {h; s /.*/ NEW FIRST LINE /; G;}:このようなファイルまたはディレクトリはありません。 – ManiAm
2番目の例は一般的には機能しません。 'cat input'コマンドを実行する前後に、リダイレクトが起こるかどうかは不明です(' input'を空のファイルに切り捨てる)。また、これは非効率的です( 'input'が常に小さいと分からない限り)。' echo -e'は移植性がありません。それを行う唯一の安全な方法は一時ファイルです: 'echo 'このファイルを編集しないでください' >入力$$$$; cat入力>>入力$$$$; mv -f入力$$$$入力 ' – MadScientist
@ManiAm:どのバージョンのsedを使用していますか?' sed '{h; s /.*/New FIRST LINE /; G;}コマンドラインで 'input'を実行し、それが動作するかどうかを確認してください。 – Beta