Während Ihre ursprüngliche Datei Zeilen enthält, die mit enden \n, enthält Ihre sortierte Datei \r\n. Das Hinzufügen von \rändert die Größe.
Zur Veranschaulichung geschieht Folgendes, wenn ich Ihren Befehl auf meinem Linux-System ausführe:
$ 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
Wie Sie sehen, ist die sortierte de-dupierte Datei einige Zeilen kürzer und folglich einige Bytes kleiner. Ihre Datei ist jedoch anders:
$ wc -l sorted-file.linux.txt sorted-file.txt
271576 sorted-file.linux.txt
271576 sorted-file.txt
Die beiden Dateien haben genau die gleiche Anzahl von Zeilen, aber:
$ 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
Die sorted-file.txt, die ich über Ihren Link heruntergeladen habe, ist größer. Wenn wir jetzt die erste Zeile untersuchen, können wir das Extra sehen \r:
$ head -n1 sorted-file.txt | od -c
0000000 a \r \n
0000003
Welche sind in dem, den ich unter Linux erstellt habe, nicht vorhanden:
$ head -n1 sorted-file.linux.txt | od -c
0000000 a \n
0000002
Wenn wir jetzt die \raus Ihrer Datei entfernen :
$ tr -d '\r' < sorted-file.txt > new-sorted-file.txt
Wir erhalten das erwartete Ergebnis, eine Datei, die kleiner als das Original ist, genau wie die, die ich auf meinem System erstellt habe:
$ 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\nZeilenenden, während die Eingabedatei\nZeilenenden hat. Vielleicht solltest du dein Gebietsschema anders einstellen. Versuchen Sie esLC_ALL=Cvor jedem Befehl.