যখন আপনি কোনো টেক্সট ফাইল শেয়ার করেন, তখন যে কম্পিউটারটিতে এটি প্রদর্শিত হবে কেবল সেটির কথা না ভেবে, যে প্রোগ্রামটি এটি পড়বে সেটির উপযোগী লাইন এন্ডিং বেছে নিন। macOS, Linux এবং আধুনিক ডেভেলপমেন্ট টুলগুলোর মধ্যে স্থানান্তরিত হওয়া বেশিরভাগ ফাইলের জন্য LF ব্যবহার করুন। যখন উইন্ডোজ-নির্দিষ্ট কোনো টুল বা প্রতিষ্ঠিত কোনো প্রজেক্টের ক্ষেত্রে প্রয়োজন হয়, তখন CRLF বেছে নিন। ম্যাকে, আপনি বিল্ট-ইন কমান্ড ব্যবহার করে টার্মিনালে নির্দিষ্ট কোনো টেক্সট ফাইল রূপান্তর করতে পারেন এবং ফলাফলটি একটি পৃথক ফাইল হিসেবে সংরক্ষণ করতে পারেন।
LF এবং CRLF বলতে কী বোঝায়
লাইন এন্ডিং হলো এমন একটি ক্যারেক্টার বা ক্যারেক্টার ক্রম যা একটি লাইনের সমাপ্তি নির্দেশ করে। macOS কমান্ড-লাইন টুলগুলো LF ব্যবহার করে, যা একটি একক লাইন-ফিড ক্যারেক্টার। উইন্ডোজ টেক্সট ফাইলগুলো সাধারণত CRLF ব্যবহার করে, যা একটি ক্যারেজ রিটার্ন এবং তার পরে একটি লাইন ফিড নিয়ে গঠিত। পুরনো ক্লাসিক ম্যাক ফাইলগুলোতে কেবল CR ব্যবহার করা হতে পারে, যা একটি পৃথক এবং অপেক্ষাকৃত কম প্রচলিত ফরম্যাট। অ্যাপল এই প্রথাগুলো বর্ণনা করেছে এবং উল্লেখ করেছে যে CRLF ফাইলগুলো ইউনিক্স কমান্ড-লাইন টুলগুলোতে অপ্রত্যাশিত আচরণের কারণ হতে পারে, কারণ প্রতিটি লাইনের শেষে অতিরিক্ত ক্যারেজ রিটার্নটি থেকে যায়। অ্যাপলের ক্রস-প্ল্যাটফর্ম স্ক্রিপ্টিং গাইড
ব্যবহারিক নিয়ম হিসেবে, macOS, Linux বা কোনো ক্রস-প্ল্যাটফর্ম কোড প্রজেক্টে ব্যবহৃত হবে এমন স্ক্রিপ্ট এবং প্লেইন-টেক্সট ফাইলের জন্য LF-কে প্রাধান্য দিন, যদি না প্রজেক্টে অন্য কোনো নির্দেশনা থাকে। যখন কোনো প্রাপক অ্যাপ্লিকেশন বা প্রজেক্টে স্পষ্টভাবে প্রয়োজন হয় তখন CRLF ব্যবহার করুন। যখন আপনার জানা না থাকে, তখন প্রাপককে জিজ্ঞাসা করুন বা প্রজেক্টের নির্দেশাবলী দেখুন; ফাইলের এক্সটেনশন দেখে নিজে থেকে বোঝা যায় না যে কোন লাইন এন্ডিং প্রত্যাশিত।
রূপান্তরের আগে ফরম্যাট বেছে নিন
প্রথমে ফাইলের পরবর্তী ব্যবহার শনাক্ত করুন। যে টেক্সট ফাইলটি টার্গেট অ্যাপ্লিকেশনে সঠিকভাবে খোলে এবং কাজ করে, সেটি রূপান্তর করার প্রয়োজন নাও হতে পারে। যে ফাইলটি দেখতে স্বাভাবিক মনে হলেও কোনো শেল স্ক্রিপ্ট বা ডেটা-প্রসেসিং ধাপে ব্যর্থ হয়, সেটিতে CRLF থাকতে পারে, যা লুকানো ক্যারেজ রিটার্ন রেখে দেয় এবং লাইন ম্যাচিং বা ফিল্ড পার্সিংকে প্রভাবিত করে। অ্যাপল উল্লেখ করেছে যে বিষয়বস্তু দৃশ্যত সঠিক দেখা গেলেও এই সমস্যাগুলো দেখা দিতে পারে। লাইন-এন্ডিং আচরণের বিষয়ে অ্যাপলের ব্যাখ্যা
TextEdit দিয়ে প্লেইন-টেক্সট ডকুমেন্ট তৈরি ও সম্পাদনা করা যায়, তবে সংরক্ষণের সময় LF বনাম CRLF বেছে নেওয়ার জন্য কোনো নিয়ন্ত্রণের কথা অ্যাপলের বর্তমান গাইডে উল্লেখ নেই। এর লাইন-ব্রেক কমান্ডগুলো ডকুমেন্টের বিষয়বস্তুকে ফরম্যাট করে; সেগুলোকে ফাইলের লাইন-এন্ডিং নির্বাচক হিসেবে বর্ণনা করা হয়নি। আপনার যদি কোনো নির্দিষ্ট ফরম্যাট সেট করার প্রয়োজন হয়, তবে নথিভুক্ত লাইন-এন্ডিং অপশন রয়েছে এমন একটি টেক্সট এডিটর ব্যবহার করুন অথবা টার্মিনালে নির্দিষ্ট কোনো প্লেইন-টেক্সট ফাইল রূপান্তর করুন। TextEdit ব্যবহারকারী নির্দেশিকা, TextEdit ব্রেক কন্ট্রোল
টার্মিনালে নির্দিষ্ট কোনো টেক্সট ফাইল রূপান্তর করুন
মূল ফাইলটি অক্ষত রাখুন: রূপান্তরিত ফাইলটি অন্য একটি নামে সংরক্ষণ করুন, তারপর শেয়ার করার আগে নতুন ফাইলটি খুলুন বা পরীক্ষা করে দেখুন। টার্মিনালে, input.txt এবং output.txt-কে প্রকৃত পাথে পরিবর্তন করুন। উইন্ডোজ CRLF ব্যবহার করে জানা এমন একটি ফাইলের ক্ষেত্রে যা ম্যাক বা ইউনিক্স টুলের জন্য LF হিসেবে প্রয়োজন, এই কমান্ডটি চালান:
tr -d '\r' < input.txt > output.txt
এটি ক্যারেজ রিটার্নগুলো সরিয়ে ফেলে LF লাইন এন্ডিং রেখে দেয়। LF ব্যবহার করে জানা এমন একটি ফাইলের ক্ষেত্রে যা প্রাপকের উইন্ডোজ CRLF হিসেবে প্রয়োজন, এই কমান্ডটি চালান:
CR="$(printf '\r')"
sed "s/$/$CR/" < input.txt > output.txt
এটি প্রতিটি লাইন ফিডের আগে একটি করে ক্যারেজ রিটার্ন যোগ করে। অ্যাপল tr এবং sed ব্যবহার করে এই রূপান্তরগুলো নথিভুক্ত করেছে। অ্যাপলের রূপান্তরের উদাহরণসমূহ
কমান্ডগুলো কেবল তখনই ব্যবহার করুন যখন আপনি সোর্স ফরম্যাট জানেন এবং ফাইলটি প্লেইন টেক্সট হয়। LF রূপান্তরটি প্রতিটি CR ক্যারেক্টারকে সরিয়ে ফেলে, কেবল LF-এর সাথে যুক্ত থাকা CR ক্যারেক্টারগুলোকে নয়; এর বিপরীত রূপান্তরটি ধরে নেয় যে ইনপুটটিতে LF ব্যবহৃত হয়েছে। মিশ্র ফাইল, কেবল CR বিশিষ্ট পুরোনো ফাইল, বা যার বিষয়বস্তুর মধ্যে অর্থপূর্ণ ক্যারেজ রিটার্ন রয়েছে এমন ফাইলের ক্ষেত্রে, এই সাধারণ কমান্ডগুলো আপনার কাঙ্ক্ষিত লাইন এন্ডিংয়ের চেয়েও বেশি কিছু পরিবর্তন করে ফেলতে পারে। বাইনারি ফাইলে এগুলো চালানো এড়িয়ে চলুন। ফাইলের ফরম্যাট অনিশ্চিত হলে বা এনকোডিং ও মেটাডেটা সংরক্ষণ করা গুরুত্বপূর্ণ হলে, উপযুক্ত কোনো এডিটর বা রূপান্তর টুল ব্যবহার করুন এবং আগে সেটির ডকুমেন্টেশন দেখে নিন।
ফলাফল পরীক্ষা করুন এবং সঠিক ফাইলটি পাঠান
কাঙ্ক্ষিত অ্যাপ্লিকেশনে আউটপুটটি খুলুন এবং নিশ্চিত করুন যে লাইনগুলো পৃথকভাবে প্রদর্শিত হচ্ছে এবং ফাইলটিতে এখনও প্রত্যাশিত টেক্সট রয়েছে। প্রাপক রূপান্তরিত কপিটি সঠিকভাবে কাজ করছে বলে নিশ্চিত না করা পর্যন্ত মূল ফাইলটি সংরক্ষণ করে রাখুন। মূল ফাইলের পরিবর্তে রূপান্তরিত আউটপুটটি পাঠান, এবং যখন প্রয়োজন হয় তখন আপনার হস্তান্তরের বিবরণে প্রত্যাশিত লাইন-এন্ডিং ফরম্যাটটি উল্লেখ করুন—যেমন, “LF লাইন এন্ডিং সহ সংরক্ষিত।”
সবচেয়ে নিরাপদ পছন্দ হলো প্রাপক টুল বা প্রজেক্টে যা নির্দিষ্ট করা রয়েছে তা ব্যবহার করা। কোনো বিশেষ প্রয়োজন ছাড়া, ম্যাক ওয়ার্কফ্লোর জন্য LF হলো স্বাভাবিক প্রারম্ভিক বিন্দু; গন্তব্যের চাহিদা থাকলেই কেবল CRLF-এ রূপান্তর করুন।
উৎসসমূহ
Designing Scripts for Cross-Platform Deployment — Apple Developer
TextEdit User Guide — Apple Support
Insert line, paragraph, and page breaks in TextEdit on Mac — Apple Support