প্রদত্ত ডিরেক্টরিতে প্রতিটি ফাইলের শুরুতে পাঠ্য এবং ফাঁকা রেখা কীভাবে যুক্ত করবেন?


0

"হ্যালো" লেখাটি ফাঁকা রেখা অনুসরণ করে / হোম / জহনিতে প্রতিটি ফাইলের শুরুতে কীভাবে আমি একটি নতুন লাইন যুক্ত করব? এছাড়াও, আমাকে প্রতিটি লাইনের শেষে প্রতিটি অকেজো স্থান বা ট্যাব মুছতে হবে (যদি কোনও লাইনে কেবল ফাঁকা জায়গা বা ট্যাব থাকে তবে সেগুলি মুছে ফেলা হবে, তবে লাইনটি অবশ্যই রাখতে হবে)।

উত্তর:


1

নিম্নলিখিত চেষ্টা করুন (শুরু /home/johnny/):

for f in * ; do awk 'BEGIN {print "Hello\n";} {gsub("([ \t]+)$", ""); print $0; }' "$f" >"$f.2"; done

এটি .2একই ডিরেক্টরিতে ফাইল তৈরি করে। এই ফাইলগুলিতে পরিবর্তন রয়েছে।

forবিবৃতি ডিরেক্টরির মধ্যে সব ফাইল তালিকাবদ্ধ করে। আপনি যদি কেবলমাত্র পাঠ্য ফাইলগুলি প্রক্রিয়া করতে চান তবে আপনি এর *.txtপরিবর্তে ব্যবহার করতে পারেন *

awkসঞ্চালিত 2 কর্ম:

  1. "হ্যালো" এবং ফাঁকা লাইন দিয়ে প্রতিটি ফাইল প্রস্তুত করে।
  2. প্রতিটি লাইনের শেষে থেকে স্পেস এবং ট্যাব অক্ষর সরিয়ে দেয়।

ফলাফলগুলি স্ট্যান্ডার্ড আউটপুটে প্রদর্শিত হয়।

শেষ পর্যন্ত একটি সাধারণ পুনঃনির্দেশ .2প্রক্রিয়াজাত স্ট্যান্ডার্ড আউটপুট থেকে ফাইলগুলি তৈরি করে ।

এটি ফাইলগুলিতে তাদের নামে ফাঁকা স্থান নিয়ে কাজ করে, কারণ $fউদ্ধৃত হয়েছে।

আপনি যদি মূল ফাইলগুলি রাখতে না চান তবে কমান্ডটি নিম্নরূপে পরিবর্তন করুন:

for f in * ; do awk 'BEGIN {print "Hello\n";} {gsub("([ \t]+)$", ""); print $0; }' "$f" >"$f.2"; mv "$f.2" "$f"; done

প্রধান সংযোজন হ'ল মুভ কমান্ড যা পরিবর্তিত সংস্করণ সহ মূল ফাইলগুলিকে প্রতিস্থাপন করে।


আমাকে কি সেই নির্দেশাবলী সম্বলিত একটি স্ক্রিপ্ট তৈরি করতে হবে বা নির্দেশাবলী সরাসরি টার্মিনালে রাখা যেতে পারে? এবং যদি আমি মূল ফাইলগুলি রাখতে না চাই তবে আমি কী করব?
জহনি

আপনি কমান্ডটি একটি লাইনে রাখতে পারেন। (আমি এটি পরীক্ষা করে দেখি)) আসল ফাইলগুলি প্রতিস্থাপনের বিকল্পটি দিয়ে উত্তরটি আপডেট করেছি।
lgarzo
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.