\f
পার্লের ফর্ম ফিড অক্ষর। দেখে মনে হচ্ছে এই দূষিত ফাইলগুলি পার্ল এবং এক্সএমএল উভয়ের জন্যই নতুন কেউ তৈরি করেছেন।
এখানে অনেক পারিলার ফিক্স রয়েছে - যা সেডের সাথে স্বীকৃত উত্তরের বিপরীতে সমস্ত ফাইলের স্বয়ংক্রিয় আপডেটের ওপি'র লক্ষ্যগুলিও পূরণ করে, যা জুটিবদ্ধ না হওয়ার সাথে সাথে কেবল একটি ফাইলে কাজ করবে find
।
\f
হেক্সাডেসিমাল কোডের পরিবর্তে কেবল নিজেকে নিয়োগ করা যেতে পারে x0c
।
find . -type f -exec perl -pi.bkp -e 's [ \f ilename ][ /f ilename ]gx' {} \;
এখানে আমি কেবল প্লেইন ফাইলগুলি ফিরিয়ে -type f
আনতে টেলিফোনে যুক্ত করেছি find
- অন্যথায় তালিকায় find
ফিরে আসবে .
, এবং আপনি যখন এটি সম্পাদনা করার চেষ্টা করবেন তখন একটি সতর্কতা ট্রিগার করবে, যদিও সমস্ত কিছু এখনও কাজ করবে।
আমি x
পতাকাটি ব্যবহার করে রিজেক্সকে আরও সহজ করে তুলেছি যা রিয়েল হোয়াইটস্পেসকে উপেক্ষা করে আপনাকে আপনার রেগেক্সের উপাদানগুলিকে ফাঁকা করে দেবে। আপনি যদি এটি পছন্দ না করেন তবে এখানে এটি বাইরে রয়েছে:
find . -type f -exec perl -pi.bkp -e 's[\filename][/filename]g' {} \;
এবং সম্ভবত ফর্ম ফিডের সমস্ত অক্ষর উদ্দীপনাযুক্ত এবং সমস্তগুলি প্রতিস্থাপন করা উচিত /f
, তারপরে আপনি ওয়ান-লাইনার আরও নীচে স্লিম করতে পারেন:
find . -type f -exec perl -pi.bkp -e 's[\f][/f]g' {} \;
s///
পার্লে আপনার রেগেক্স সাবস্টিটিউশন কমান্ডের উপাদানগুলি ( ) ঘিরে ফেলতে আপনাকে ফরোয়ার্ড স্ল্যাশ ব্যবহার করার দরকার নেই । আপনি যে কোনও চিহ্ন ব্যবহার করতে পারেন। আপনি যদি কোনও জোড়াযুক্ত বন্ধনী-জাতীয় চিহ্ন ব্যবহার করতে চান তবে, আপনাকে সেগুলি দুটিই ব্যবহার করতে হবে: s[old][new]
উদাহরণস্বরূপ।
যেহেতু আমি স্ল্যাশ ব্যবহার করছি না, তাই আমাকে কোনও স্ল্যাশ থেকে বাঁচতে হবে না।
যেমন -i.bkp
: perl -pi -e
আপনাকে জায়গায় জায়গায় সম্পাদনা করতে দেয় - তবে আপনি যদি পার্ল প্রোগ্রামটি খুঁজে বের করে প্রতিস্থাপন করতে চান তবে অতিরিক্ত বীমা চাইলে আপনি একটি ফাইল এক্সটেনশনে রাখতে পারেন যাতে এটি মূল ফাইলগুলির একটি অনুলিপি তৈরি করে আপনি. এখানে, আমি ব্যবহার করেছি .bkp
।
পার্লের অতি সাম্প্রতিক সংস্করণগুলিতে, আপনার সিস্টেমটিও যদি বিদ্যুৎ হ্রাস বা ডিস্কের অভাবের অভাবে চালিত হওয়ার মতো গুরুতর সমস্যার মুখোমুখি হয় তবে ইনস-প্লেস সম্পাদনাটিকে আরও বেশি স্থিতিস্থাপক হিসাবে আপডেট করা হয়েছে। এখানে পার্ল লেখক ব্রায়ান ডি ফয়েস সাম্প্রতিক পার্সে ইন-প্লেস সম্পাদনা উন্নত করেছেন।
এই ধরণের কাজের জন্য আপনার পার্ল ব্যবহার করার কথা বিবেচনা করা উচিত, কারণ এটি একটি অত্যন্ত শক্তিশালী তবুও নিম্ন-রেটযুক্ত সাধারণ-উদ্দেশ্য প্রোগ্রামিং ভাষা, যার মূল নকশার লক্ষ্যগুলির একটি হ'ল প্রতিস্থাপন sed
এবং awk
আরও ভাল কিছু দিয়ে।
পার্ল 5 এর Regex ম্যাচিং ক্ষমতা এবং উন্নত Regex সিনট্যাক্স পর্যন্ত সেই অতিক্রম sed
, awk
, এবং প্রকৃতপক্ষে প্রত্যেক অন্যান্য প্রোগ্রামিং পৃথক্ পার্ল 6 থেকে ভাষা, পার্ল উভয় সহজ এবং উন্নত Regex হেরফেরের জন্য সবচেয়ে যুক্তিসম্মত পছন্দ।
স্পষ্ট করার জন্য: খুব sed
ঠিকঠাক সাথে কাজ করবে find
এবং আপনি sed -i.bkp
সম্পাদিত প্রতিটি ফাইলের ব্যাকআপ তৈরি করতেও ব্যবহার করতে পারেন, তবে যতদূর আমি জানি এটি পার্ল 5.28 এবং তারপরের উপরের অতিরিক্ত স্থিতিস্থাপকতার বৈশিষ্ট্য দেয় না। এটি ক্লানকিয়ার এবং অনেক কম শক্তিশালী traditionalতিহ্যবাহী ইউএনআইএক্স ® রেজেেক্স সিনট্যাক্সও ব্যবহার করে।
<\filename>
পরিবর্তে ব্যবহৃত হয়েছে</filename>
যেখানে\f
ফর্ম ফিড চরিত্র হিসাবে ব্যাখ্যা করা হবে। আপনার সম্ভবত এই ফাইলগুলির উত্স সন্ধান করা উচিত এবং তাদের উত্পন্ন সরঞ্জামের সাহায্যে বিকাশকারীকে সমস্যাটি চিহ্নিত করা উচিত। ফাইলগুলি ঠিক করার জন্য, গৃহীত উত্তরটি ঠিক আছে।