Sementara file asli Anda memiliki garis yang berakhir dengan \n
, file Anda yang diurutkan memiliki \r\n
. Penambahan \r
inilah yang mengubah ukuran.
Sebagai ilustrasi, inilah yang terjadi ketika saya menjalankan perintah Anda di sistem Linux saya:
$ 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
Seperti yang Anda lihat, file de-duped yang diurutkan lebih pendek beberapa baris dan, akibatnya, beberapa byte lebih kecil. Namun file Anda berbeda:
$ wc -l sorted-file.linux.txt sorted-file.txt
271576 sorted-file.linux.txt
271576 sorted-file.txt
Kedua file memiliki jumlah baris yang persis sama, tetapi:
$ 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
Yang sorted-file.txt
saya unduh dari tautan Anda lebih besar. Jika sekarang kita memeriksa baris pertama, kita dapat melihat tambahan \r
:
$ head -n1 sorted-file.txt | od -c
0000000 a \r \n
0000003
Yang tidak ada dalam yang saya buat di Linux:
$ head -n1 sorted-file.linux.txt | od -c
0000000 a \n
0000002
Jika sekarang kami menghapus \r
dari file Anda:
$ tr -d '\r' < sorted-file.txt > new-sorted-file.txt
Kami mendapatkan hasil yang diharapkan, file yang lebih kecil dari aslinya, sama seperti yang saya buat di sistem saya:
$ 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
akhir baris, sedangkan file input memiliki\n
akhir baris. Mungkin Anda harus mengatur lokasi Anda secara berbeda. CobaLC_ALL=C
di depan setiap perintah.