थोड़ा पुराना स्कूल लेकिन इसने OS X पर काम किया।
कुछ तरकीबें हैं:
• केवल .slsवर्तमान निर्देशिका के तहत विस्तार के साथ फ़ाइलों को संपादित करेगा
• .यह सुनिश्चित करने के लिए बच जाना चाहिए कि sedउन्हें "किसी भी चरित्र" के रूप में मूल्यांकन नहीं करना चाहिए
• सामान्य के बजाय परिसीमाक के ,रूप में प्रयोग किया जाता हैsed/
यह भी ध्यान दें कि यह एक variableके पथ में एक पास करने के लिए एक जिन्जा टेम्पलेट को संपादित करना है import(लेकिन यह विषय से दूर है)।
सबसे पहले, अपने sed कमांड को सत्यापित करें कि आप क्या चाहते हैं (यह केवल स्टडआउट में परिवर्तन प्रिंट करेगा, यह फ़ाइलों को नहीं बदलेगा):
for file in $(find . -name *.sls -type f); do echo -e "\n$file: "; sed 's,foo\.bar,foo/bar/\"+baz+\"/,g' $file; done
एक बार जब आप परिवर्तन करने के लिए तैयार हों, तो आवश्यकतानुसार कमांड को संपादित करें:
for file in $(find . -name *.sls -type f); do echo -e "\n$file: "; sed -i '' 's,foo\.bar,foo/bar/\"+baz+\"/,g' $file; done
Sed कमांड -i ''में ध्यान दें , मैं मूल फ़ाइलों का बैकअप नहीं बनाना चाहता था (जैसा कि OS X पर sed के साथ इन-प्लेस एडिट्स में बताया गया है या इस पेज में रॉबर्ट लुजो की टिप्पणी में)।
हैप्पी seding लोग!