Orijinal dosyanızda biten satırlar olsa da \n
, sıralanmış dosyanızda var \r\n
. Bunun \r
boyutu ne değiştirirse.
Açıklamak gerekirse, emrinizi Linux sistemimde çalıştırdığımda ne olur:
$ 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
Gördüğünüz gibi, sıralanan çözülmüş dosya birkaç satır daha kısa ve sonuç olarak birkaç bayt daha küçük. Ancak dosyanız farklıdır:
$ wc -l sorted-file.linux.txt sorted-file.txt
271576 sorted-file.linux.txt
271576 sorted-file.txt
İki dosya aynı sayıda satıra sahiptir, ancak:
$ 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
Bağlantınızdan sorted-file.txt
indirdiğim dosya daha büyük. Şimdi ilk satırı incelersek, ekstraları görebiliriz \r
:
$ head -n1 sorted-file.txt | od -c
0000000 a \r \n
0000003
Linux'ta yarattığımda bulunmayanlar:
$ head -n1 sorted-file.linux.txt | od -c
0000000 a \n
0000002
Şimdi \r
dosyayı dosyanızdan kaldırırsak :
$ tr -d '\r' < sorted-file.txt > new-sorted-file.txt
Beklenen sonucu, sistemimde yarattığım gibi orijinalden daha küçük bir dosya elde ediyoruz:
$ 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
satır sonları varken, girdi dosyanızın\n
satır sonları vardır. Belki de yerel ayarlarınızı farklı şekilde ayarlamalısınız.LC_ALL=C
Her komutun önünde deneyin .