Sekolah yang agak tua tetapi ini bekerja pada OS X.
Ada beberapa trik:
• Hanya akan mengedit file dengan ekstensi di .sls
bawah direktori saat ini
• .
harus melarikan diri untuk memastikan sed
tidak mengevaluasi mereka sebagai "karakter apa pun"
• ,
digunakan sebagai sed
pembatas sebagai ganti dari yang biasa/
Juga perhatikan ini untuk mengedit template Jinja untuk melewati variable
di 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!