প্রথমত, আপনি শেল স্ক্রিপ্টগুলিতে নিয়মিত ascii quotes "
এবং '
(ascii কোড 0x22
এবং 0x27
যথাক্রমে) ব্যবহার করছেন তা নিশ্চিত করুন , কারণ আপনার পোস্টে উদাহরণটিতে অ-মানক উদ্ধৃতি অক্ষর রয়েছে। আপনি যদি ঘনিষ্ঠভাবে দেখেন তবে এগুলি কিছুটা আলাদা দেখায়। সম্ভবত এটি ওয়ার্ড, OOWriter, এমনকি একটি ব্রাউজার উইন্ডো সমৃদ্ধ একটি সমৃদ্ধ পাঠ্য নথি বিন্যাসের একটি অনুলিপি-পেস্ট ত্রুটি।
যেহেতু আপনি একটি ম্যাকে রয়েছেন sed
, আপনার সম্ভবত ফ্রিবিএসডি বাস্তবায়ন রয়েছে , সেক্ষেত্রে আপনাকে কমান্ডটি এভাবে লিখতে হবে:
find . -name "*.java" -exec sed -i '' s/foo/bar/g {} +
(এখানে প্রতি ফাইলের জন্য একটি অনুরোধ চালানো এড়াতে ব্যবহার +
করে )।\;
sed
এর FreeBSD 'র বাস্তবায়ন সালে একটি ব্যাকআপ ফাইলের এক্সটেনশন: পতাকা একটি আর্গুমেন্ট প্রয়োজন। কমান্ডটি উদাহরণস্বরূপ মূল ফাইলটিতে প্রতিস্থাপন সম্পাদনের আগে প্রথম হিসাবে ব্যাকআপ করবে । একটি খালি যুক্তি ব্যবহারের অর্থ ব্যাকআপ ফাইলটি ব্যবহার না করা, যা আপনি যা চান তা মনে হয়।sed
-i
-i .bak
file1.txt
file1.txt.bak
''
জিএনইউতে (বা নেটবিএসডি, ওপেনবিএসডি, ব্যস্তবক্স) বাস্তবায়নের ক্ষেত্রে একই জিনিসটি হ'ল:
find . -name "*.java" -exec sed -i s/foo/bar/g {} +
আপনার মন্তব্যে আমার উত্তরকে উন্নত করার জন্য আপনাকে বাহাহাত এবং @ মাইকেল এবং @ পাইটার- ব্রিড ধন্যবাদ ।
-exec
পরে এবং সমস্ত কিছু সরিয়ে ফেলেন তবে কী হবে? এটি জাভা ফাইলগুলির নাম মুদ্রণ করে? (আমি আশঙ্কা করছি যে আপনি এএসসিআইআই কোটের পরিবর্তে স্মার্ট উদ্ধৃতি ব্যবহার করছেন।)