少し古い学校ですが、これはOS Xで動作しました。
いくつかの策略があります:
• .sls
現在のディレクトリの下の拡張子を持つファイルのみを編集します
• 「任意の文字」として評価され.
ないようにエスケープする必要がありますsed
• 通常の代わりに区切り文字,
として使用されますsed
/
また、これはJinjaテンプレートを編集して variable
してのパスでにimport
(ただし、これはトピック外です)。
まず、sedコマンドが希望どおりに機能することを確認します(これにより、変更がstdoutに出力されるだけで、ファイルは変更されません)。
for file in $(find . -name *.sls -type f); do echo -e "\n$file: "; sed 's,foo\.bar,foo/bar/\"+baz+\"/,g' $file; done
変更の準備ができたら、必要に応じてsedコマンドを編集します。
for file in $(find . -name *.sls -type f); do echo -e "\n$file: "; sed -i '' 's,foo\.bar,foo/bar/\"+baz+\"/,g' $file; done
注意-i ''
してSEDコマンド、私は(で説明したように、元のファイルのバックアップを作成したくなかったインプレース編集OS X上のsedとするか、このページではロバートLujoさんのコメントで)。
sedingの皆さん、ハッピー!