いくつかのテンプレートを実行するために$template
呼び出すファイルがあります。これが完了したら、新しいファイルをシェルスクリプトの一部である別のディレクトリにリダイレクトしたいとsed
思います。$template
output
newtemplate
sed -r -i.bak -e "{
# templating done here.
}" $template > $data/$newtemplate
$newtemplate
これにより、ディレクトリにファイルが正常に作成されますが、$output
sedを呼び出すかテンプレート作成を実行しません。
簡単に言えば、ファイルをsed
使用し$template
てテンプレートファイルをインポートしてoutput
新しい名前のディレクトリにリダイレクトする方法は?newtemplate
ベストアンサー1
オプションは出力が生成されないことを-i
意味します。sed
代わりに元のファイルを変更します。したがって、コマンドは正常に動作し、すべての操作を実行していますが、#templating
実行中であり、$template
出力がありません。出力がないため、空の> $data/$newtemplate
ファイルのみが生成されます。
ソース$template
ファイルに影響を与えずにコマンド出力をsed
標準出力に印刷し、標準出力をwithにリダイレクトするファイルに印刷するには、このオプションを> $data/$newtemplate
削除する必要があります。-i
sed -r -e "{
# templating done here.
}" "$template" > "$data/$newtemplate"
(あなたもそうしなければなりません。常に変数を引用してください。上記のように)