আমি কীভাবে * নিক্স কমান্ড লাইন সরঞ্জামগুলি ব্যবহার করে একাধিক ফাইলকে ইউটিএফ -8 এনকোডিংয়ে রূপান্তর করতে পারি? [প্রতিলিপি]


46

সম্ভাব্য সদৃশ:
এনকোডিং বা লাইন শেষের জন্য ফাইল ব্যাচ-রূপান্তর

আমার কাছে একগুচ্ছ পাঠ্য ফাইল রয়েছে যা আমি যে কোনও চরসেট থেকে ইউটিএফ -8 এনকোডিংয়ে রূপান্তর করতে চাই।

এই en masse করতে আমি ব্যবহার করতে পারি এমন কোন কমান্ড লাইনের সরঞ্জাম বা পার্ল (বা আপনার পছন্দসই ভাষা) এর একটি লাইনার রয়েছে?

উত্তর:


56

আইকনভিভ বহু অক্ষর এনকোডিংয়ের মধ্যে রূপান্তর করে। সুতরাং একটি সামান্য বাশ যাদু যুক্ত করে আমরা লিখতে পারি

for file in *.txt; do
    iconv -f ascii -t utf-8 "$file" -o "${file%.txt}.utf8.txt"
done

এটি iconv -f ascii -t utf-8শেষ হওয়া প্রতিটি ফাইলটিতে চলে যাবে .txt, পুনরায় পুনরায় ফাইল করা ফাইল একই নামযুক্ত কোনও ফাইলে প্রেরণ করা হবে তবে .utf8.txtপরিবর্তে শেষ হবে .txt

এটি আসলে আপনার ফাইলগুলিতে কিছু করতে পারে এমন নয় (কারণ ASCII UTF-8 এর একটি উপসেট), তবে কীভাবে এনকোডিংগুলির মধ্যে রূপান্তর করা যায় সে সম্পর্কে আপনার প্রশ্নের উত্তর দেওয়ার জন্য।


2
ফাঁকা স্থান সহ ফাইলের নামগুলি হ্যান্ডেল করার জন্য আপনার ভার $ i এর উদ্ধৃতি দেওয়া উচিত।
রিচার্ড হোসকিনস

এটি কাজ করবে, এটি একটির জন্য একটি বিওএম যোগ করবে ...
জেসন

আপনি কি নিশ্চিত আইকনভিও একটি বিওএম যোগ করবে? আমি এমন ছাপে ছিলাম যে এটি ইউটিএফ -8 এর সাথে হবে না।
রিচার্ড হোসকিনস

5
আমি স্রেফ এটি আইকনভি (জিএনইউ লিবিকনভ 1.11) দিয়ে পরীক্ষা করেছি এবং এটি কোনও বিওএম যোগ করে নি। এটি আমার বোঝার মতো যে আইকনভিভ কেবলমাত্র একটি বিওএম যুক্ত করবে যদি কোনও ইনপুটটিতে উপস্থিত থাকে, যা এটি ASCII তে হবে না। বিওএম সমস্যাযুক্ত এবং ইউটিএফ -8 এর সাথে প্রয়োজনীয় নয়।
রিচার্ড হোসকিনস

2
যদি আপনার আইকনভি সংস্করণটি -o প্যারামিটার সমর্থন না করে তবে আপনি সরাসরি শেল পুনর্নির্দেশটি ব্যবহার করতে >> এর সাথে এটি প্রতিস্থাপন করতে পারেন।
ডাকাতি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.