ในขณะที่ไฟล์ต้นฉบับของคุณมีเส้นสิ้นสุดที่มีไฟล์เรียงของคุณมี\n
\r\n
การเพิ่ม\r
สิ่งที่เปลี่ยนขนาด
เพื่อแสดงให้เห็นนี่คือสิ่งที่เกิดขึ้นเมื่อฉันรันคำสั่งของคุณบนระบบ Linux
$ 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
สิ่งใดที่ฉันไม่ได้สร้างบน Linux:
$ 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
ต่อหน้าแต่ละคำสั่ง