Sekolah yang agak tua tetapi ini bekerja pada OS X.
Ada beberapa trik:
• Hanya akan mengedit file dengan ekstensi di .slsbawah direktori saat ini
• .harus melarikan diri untuk memastikan sedtidak mengevaluasi mereka sebagai "karakter apa pun"
• ,digunakan sebagai sedpembatas sebagai ganti dari yang biasa/
Juga perhatikan ini untuk mengedit template Jinja untuk melewati variabledi jalur import(tapi ini di luar topik).
Pertama, verifikasi perintah sed Anda melakukan apa yang Anda inginkan (ini hanya akan mencetak perubahan ke stdout, itu tidak akan mengubah file):
for file in $(find . -name *.sls -type f); do echo -e "\n$file: "; sed 's,foo\.bar,foo/bar/\"+baz+\"/,g' $file; done
Edit perintah sed sesuai kebutuhan, setelah Anda siap untuk melakukan perubahan:
for file in $(find . -name *.sls -type f); do echo -e "\n$file: "; sed -i '' 's,foo\.bar,foo/bar/\"+baz+\"/,g' $file; done
Catat -i ''dalam perintah sed , saya tidak ingin membuat cadangan dari file asli (seperti yang dijelaskan dalam In-place edit dengan sed pada OS X atau dalam komentar Robert Lujo di halaman ini).
Selamat seding orang!