Fish Shell:
CLI ওয়ান-লাইনার্স দিয়ে ফাইল এডিটিং করা
কিভাবে:
ব্যবহারকারী-বান্ধব বৈশিষ্ট্য ও শক্তিশালী স্ক্রিপ্টিং ক্ষমতা এর জন্য পরিচিত ফিশ শেল, ফাইল সম্পাদনার বেশ কিছু উপায় অফার করে। তবে, কিছু অন্যান্য শেলের মতো, ফিশে ইন-প্লেস সম্পাদনার জন্য কোনো অন্তর্নির্মিত পদ্ধতি নেই (sed -i
বাশে, উদাহরণ স্বরূপ)। তবে ভয় পাবেন না, আপনি sed
ও awk
এর মতো বাহ্যিক টুলসের সাহায্য ও একটু সৃজনশীলতার মাধ্যমে এটি অর্জন করতে পারেন।
sed
ব্যবহার করে সহজ প্রতিস্থাপন
file.txt
ফাইলে “hello” সব অবস্থানকে “world” এর সাথে প্রতিস্থাপন করতে আপনি ব্যবহার করবেন:
sed -i '' 's/hello/world/g' file.txt
একাধিক sed
কমান্ড প্রয়োগ
আপনার যদি একাধিক প্রতিস্থাপন করা প্রয়োজন হয়, আপনি এগুলিকে এভাবে চেইন করতে পারেন:
sed -i '' -e 's/fish/bass/g' -e 's/rainbow/trout/g' file.txt
জটিল অপারেশনের জন্য awk
ব্যবহার
sed
এর জন্য অত্যন্ত জটিল অপারেশনের জন্য, awk
আপনার পছন্দের টুল হতে পারে। প্রতি লাইনে সংখ্যাটি দ্বিগুণ করার উপায়:
awk '{print $1 * 2}' file.txt > temp && mv temp file.txt
ত্রুটি হ্যান্ড্লিং এর উপর নোট
মনে রাখবেন, ফিশ থেকে এই টুলগুলি ব্যবহার করে, ত্রুটিগুলি গ্রাহ্য করা এবং তাদের বার্তাগুলি বুঝতে পারা অত্যাবশ্যক। আপনার স্ক্রিপ্টগুলিকে আরও বিশ্বস্ত করার জন্য ফিশের শক্তিশালী ত্রুটি হ্যান্ড্লিং ব্যবহার করুন।
গভীর ডুব
ইতিহাসের দিক থেকে, ইন-প্লেস ফাইল সম্পাদনা ইউনিক্স ও লিনাক্স প্রোগ্রামিং এর একটি মৌলিক অংশ ছিল, যা ম্যানুয়ালি ফাইল খুলে না দেখে দ্রুত সম্পাদনার একটি দক্ষ উপায় অফার করে। sed
এবং awk
এর মতো টুলগুলি ইউনিক্সের প্রারম্ভিক দিনগুলিতে এসেছিল, এবং টেক্সট প্রসেসিং কাজের জন্য অপরিহার্য হয়ে উঠেছিল।
ফিশ শেল, আরও আধুনিক এবং ব্যবহারিকতা ও স্ক্রিপ্টিংয়ে উন্নতি বোঝানো সত্ত্বেও, এর ডিজাইন দর্শন যা ইন্টারঅ্যাক্টিভিটি ও ব্যবহারকারী-বান্ধবতার উপর মনোনিবেশ করে, তার ফলে ইন-প্লেস সম্পাদনার জন্য অন্তর্নির্মিত কোনো কমান্ড নেই। ফিশে ইন-প্লেস সম্পাদনা কমান্ডের অনুপস্থিতি ইউনিক্সের মত সিস্টেমগুলিতে বাহ্যিক টুলগুলির গুরুত্বকে প্রতিষ্ঠা করে।
ফিশে ইন-প্লেস সম্পাদনার বিকল্পের মধ্যে অস্থায়ী ফাইল ব্যবহার করা অথবা Perl অথবা Python ওয়ান-লাইনারগুলির উপর নির্ভর করা অন্তর্ভুক্ত, যা জটিল কাজের জন্য আরও নমনীয়তা অথবা পাঠযোগ্যতা প্রদান করতে পারে।
উদাহরণস্বরূপ, Perl ব্যবহার করে:
perl -pi -e 's/find/replace/g' file.txt
অথবা Python:
python -c "import re, sys; [sys.stdout.write(re.sub('pattern', 'replacement', line)) for line in sys.stdin]" < file.txt > temp && mv temp file.txt
বাস্তবায়নের দিক দিয়ে দেখলে, ইন-প্লেস সম্পাদনা পারফর্ম করার সময়, এই টুলগুলি সাধারণত একটি অস্থায়ী ফাইল তৈরি করে, পরিবর্তনগুলি সেখানে লেখে, এবং তারপরে মূল ফাইলটি সংশোধিত সংস্করণের সাথে প্রতিস্থাপন করে। এই পদ্ধতিটি নিশ্চিত করে যে সম্পাদনা প্রক্রিয়াটি অপারেশনের সময় কোনও ত্রুটি ঘটলে ডাটা দূষিত বা হারানোর শঙ্কা থেকে মুক্ত।
এই টুলগুলি এবং পদ্ধতিগুলি বুঝে ফিশ শেল প্রোগ্রামাররা তাদের স্ক্রিপ্টে ইন-প্লেস সম্পাদনা কার্যকরভাবে যুক্ত করতে সক্ষম হয়, ফিশের ব্যবহারকারী-বান্ধব বৈশিষ্ট্যগুলি এবং ঐতিহ্যগত ইউনিক্স টেক্সট প্রক্রিয়াকরণ ইউটিলিটিগুলির কাঁচা শক্তির মধ্যে সেতু গড়ে।