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.txt
ho 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 \r
file 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\n
terminazioni di riga, mentre il file di input ha\n
terminazioni di riga. Forse dovresti impostare le impostazioni internazionali in modo diverso. ProvaLC_ALL=C
davanti a ciascun comando.