Mentre il tuo file originale ha delle righe che finiscono con \n, il tuo file ordinato ha \r\n. L'aggiunta di \rè ciò che cambia la dimensione.
Per illustrare, ecco cosa succede quando eseguo il comando sul mio sistema 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
Come puoi vedere, il file de-duped ordinato è più corto di alcune righe e, di conseguenza, più piccolo di alcuni byte. Il tuo file, tuttavia, è diverso:
$ wc -l sorted-file.linux.txt sorted-file.txt
271576 sorted-file.linux.txt
271576 sorted-file.txt
I due file hanno esattamente lo stesso numero di righe, ma:
$ 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
Quello che sorted-file.txtho scaricato dal tuo link è più grande. Se ora esaminiamo la prima riga, possiamo vedere l'extra \r:
$ head -n1 sorted-file.txt | od -c
0000000 a \r \n
0000003
Che non sono presenti in quello che ho creato su Linux:
$ head -n1 sorted-file.linux.txt | od -c
0000000 a \n
0000002
Se ora rimuoviamo il \rfile dal tuo file:
$ tr -d '\r' < sorted-file.txt > new-sorted-file.txt
Otteniamo il risultato atteso, un file più piccolo dell'originale, proprio come quello che ho creato sul mio sistema:
$ 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\nterminazioni di riga, mentre il file di input ha\nterminazioni di riga. Forse dovresti impostare le impostazioni internazionali in modo diverso. ProvaLC_ALL=Cdavanti a ciascun comando.