আপনার আসল ফাইলটির সাথে শেষ হওয়া লাইনগুলি রয়েছে \n
, আপনার সাজানো ফাইলটি রয়েছে \r\n
। এর \r
যোগটি যা আকার পরিবর্তন করে।
উদাহরণস্বরূপ, আমি যখন আমার লিনাক্স সিস্টেমে আপনার কমান্ডটি চালিত করি তখন কী হয়:
$ sort < file.txt | uniq > sorted-file.linux.txt
$ ls -l file.txt sorted-file.linux.txt
-rw-r--r-- 1 terdon terdon 2958616 Jul 10 12:11 file.txt
-rw-r--r-- 1 terdon terdon 2942389 Jul 10 15:15 sorted-file.linux.txt
$ wc -l file.txt sorted-file.linux.txt
273882 file.txt
271576 sorted-file.linux.txt
আপনি দেখতে পাচ্ছেন, সাজানো ডি-ডুপড ফাইলটি কয়েকটি লাইন সংক্ষিপ্ত এবং ফলস্বরূপ কয়েকটি বাইট ছোট হয়। আপনার ফাইলটি অবশ্য আলাদা:
$ wc -l sorted-file.linux.txt sorted-file.txt
271576 sorted-file.linux.txt
271576 sorted-file.txt
দুটি ফাইলের ঠিক একই সংখ্যক লাইন রয়েছে তবে:
$ ls -l file.txt sorted-file.linux.txt sorted-file.txt
-rw-r--r-- 1 terdon terdon 2958616 Jul 10 12:11 file.txt
-rw-r--r-- 1 terdon terdon 2942389 Jul 10 15:15 sorted-file.linux.txt
-rw-r--r-- 1 terdon terdon 3213965 Jul 10 12:11 sorted-file.txt
sorted-file.txt
, এক আমি আপনার লিঙ্ক থেকে ডাউনলোড, বড়। যদি আমরা এখন প্রথম লাইনটি পরীক্ষা করি তবে আমরা অতিরিক্তটি দেখতে পাচ্ছি \r
:
$ head -n1 sorted-file.txt | od -c
0000000 a \r \n
0000003
যেগুলি লিনাক্সে আমি তৈরি করেছি তার মধ্যে উপস্থিত নেই:
$ head -n1 sorted-file.linux.txt | od -c
0000000 a \n
0000002
যদি আমরা এখন \r
আপনার ফাইল থেকে সরিয়ে ফেলি:
$ tr -d '\r' < sorted-file.txt > new-sorted-file.txt
আমরা প্রত্যাশিত ফলাফল পেয়েছি, একটি ফাইল যা মূল থেকে ছোট, যেমনটি আমার সিস্টেমে আমি তৈরি করেছি:
$ ls -l sorted-file.linux.txt new-sorted-file.txt file.txt
-rw-r--r-- 1 terdon terdon 2958616 Jul 10 12:11 file.txt
-rw-r--r-- 1 terdon terdon 2942389 Jul 10 15:19 new-sorted-file.txt
-rw-r--r-- 1 terdon terdon 2942389 Jul 10 15:15 sorted-file.linux.txt
\r\n
লাইন শেষ রয়েছে, অন্যদিকে ইনপুট ফাইলটির\n
লাইন শেষ রয়েছে। সম্ভবত আপনার লোকেলটি আলাদাভাবে সেট করা উচিত।LC_ALL=C
প্রতিটি কমান্ডের সামনে চেষ্টা করুন ।