Satırları sırala: metni alfabetik olarak online sırala
Bir liste yapıştırın, sıra seçin, sıralanmış halini alın. Büyük-küçük harf duyarlı veya duyarsız, artan veya azalan, dosya adları ve sürüm dizgileri için natural sort destekli.
Satırları sıralama aracı nedir?
Tarayıcıda çalışan ücretsiz bir araç: bir metin bloğunu alır, satır sonlarına göre böler, satırları sıralar ve sonucu verir. Kayıt yok, yükleme yok, hiçbir şey makinenizden çıkmaz. Yapıştır, tıkla, kopyala.
Komut satırında sort çalıştırmaya denktir, sadece burada LC_COLLATE ile boğuşmak, macOS'un eski bir BSD sort'u getirmesiyle ya da Windows'un Git Bash kurmadıkça hiç sort'unun olmaması gerçeğiyle uğraşmak zorunda değilsiniz. Üç checkbox gerçekten istediğiniz vakaları kapsar: artan veya azalan, büyük-küçük harf duyarlı veya değil, ve file2'nin file10'dan önce gelmesi için natural sort.
package.json'a hiç bağımlılık listesi yapıştırıp bir sonraki install'da npm'in onları neden yeniden sıraladığını merak ettiyseniz, bu araç npm 7+'in yaptığını birebir tekrar eder, böylece CI çalıştığında diff boş kalır.
sort gerçekte nasıl çalışıyor
Kaputun altında araç tarayıcının Intl.Collator API'sini kullanır. Bu size Unicode Collation Algorithm (UTS #10)'ın tanımladığı şekilde Unicode'u anlayan bir karşılaştırma fonksiyonu verir, ham codepoint karşılaştırması değil. Pratik fark: Intl.Collator é'nin e'nin yanına sıralandığını, Almanca ß'nin birincil seviyede ss'ye eşit karşılaştırıldığını ve büyük ile küçük harflerin yalnızca üçüncül seviyede farklılaştığını bilir.
Lexicographic sort ve locale duyarlı sort aynı şey değildir. Saf codepoint sort (LC_ALL=C sort'un verdiği şey) her büyük harfi her küçük harften önce koyar, çünkü A U+0041 ve a U+0061'dir. Unicode varsayılan collation sort ise onları içe geçirir: A < a < B < b < C. İnsanların Excel veya Google Sheets'te Sort A-Z'ye basınca beklediğiyle eşleştiği için varsayılanı locale duyarlı sıraya ayarladık. Codepoint tarzı sıraya geri dönmek için büyük-küçük harf duyarlı kutusunu işaretleyin.
Natural sort üçüncü eksen. Açıkken file2.log, file10.log'dan önce gelir çünkü gömülü sayılar karakter karakter değil sayı olarak karşılaştırılır. Arka plan istiyorsanız Wikipedia'da doğal sıralama hakkında temiz bir açıklama var. Uygulama Intl.Collator'un numeric: true seçeneğini kullanır; bu Finder, Windows Gezgini ve GNU'nun yakın sürümlerinin sort -V için kullandığı aynı temel ilkedir.
Satırları üç adımda sıralama
Bir giriş paneli, bir çıkış paneli. Hepsi yerel çalışır; sekmeyi kapatın, metniniz yok olur.
- 1
Satırlarınızı yapıştırın
Listenizi editöre bırakın, her satıra bir öğe. Sondaki boş satırlar sorun değil. CRLF ve LF'nin ikisi de çalışır; aksini söylemediğiniz sürece çıktı LF'ye normalleştirilir. Üç seçeneğin tümünü önce iş başında görmek isterseniz Sample butonu editörü küçük karışık bir listeyle doldurur.
- 2
Sort seçeneklerini belirleyin
Artan veya Azalan seçin, Apple'ın banana'dan önce gelmesini istiyorsanız Büyük-küçük harf duyarlı'yı açın ve dosya adları veya sürümler işin içindeyse Natural sort'u açın. Boş satırları kaldır sıralamadan önce boş satırları atar; Yinelenenleri kaldır tekrarları tek satıra indirger.
- 3
Sıralanmış sonucu kopyalayın
Sort'a basın. Sonuç çıkış panelinde belirir. Panoya almak için Kopyala, .txt dosyası olarak kaydetmek için İndir'i kullanın. Başlıktaki satır sayacı kaç satırın çıktığını gösterir; bu, dedup'u açtıysanız ve kaç yinelenenin kaldırıldığını öğrenmek istediğinizde işe yarar.
Satırları sıralamak ne zaman doğru araç olur
Bir kampanya gönderiminden önce e-posta listesi sıralama
Pazarlama, abonelerin e-postalarını içeren bir CSV'yi kampanya aracına yapıştırır, ama liste kayıt sırasında gelmiştir. Pratikte e-postanın yerel kısmı büyük-küçük harfe duyarsız olduğundan, önce burada büyük-küçük harf duyarsız ile alfabetik sıralayın, sonra dedup edin. Kampanya aracındaki içe aktarma daha hızlı olur ve gmial.com gibi yanlış yazılmış bir alanı meşru gmail.com bloğunun yanında oturduğu için hemen yakalarsınız.
CSS sınıf adlarını veya HTML attribute sırasını alfabetikleştirme
Bazı ekipler PR diff'lerinin temiz kalması için class="..." attribute'unda sınıf adlarını alfabetik tutmayı dayatır. Değeri yapıştırın, sıralayın, geri yapıştırın. Aynı numara bir linter şikayet ettiğinde HTML attribute sırası için ya da repoda prettier-plugin-tailwindcss kurulu değilse Tailwind utility sınıflarını elle sıralamak için de geçerli.
Gelecekteki PR diff'leri temiz olsun diye .gitignore'u sıralama
Herkesin sona ekleme yaptığı bir .gitignore bir süre sonra çekmece dolusu öteberiye döner. Bir kez alfabetik sıralayıp commit edin, ondan sonra eklemeler bariz yerlere düşer ve diff incelemecilere mantıklı gelir. Aynısı .dockerignore, .eslintignore ve ekipler tutarsa tsconfig.json'daki files dizisi için de geçerli.
Sohbetten yapıştırılmış bir TODO listesini toparlama
Slack ve Discord, garip sıralı, yarı boş satırlı ve aynı şeyi iki kere söyleyenlerden gelen yinelenenler içeren listeler atar. Yapıştırın, Boş satırları kaldır ile Yinelenenleri kaldır'ı açın, sıralayın. Görev takibinize atabileceğiniz temiz, sıralı bir liste elde edersiniz.
Ülke, havalimanı veya para birimi kodlarından oluşan bir liste sıralama
ISO 3166 ülke kodları, IATA havalimanı kodları, ISO 4217 para birimi kodları: hepsi sıralanmış halde tutulduğunda iyi olan lookup dosyalarında yaşar. Kodlar sabit genişlikte olduğu için natural sort gereksizdir ama bazı kaynaklar USD ile usd'yi karıştırdığından büyük-küçük harf duyarsızlığı önemlidir. Sırala, dedup et, lookup tablosuna geri yapıştır.
package.json bağımlılık listesi sıralama
package.json'daki bağımlılık anahtarlarını npm 7+ her install'da alfabetikleştirir, ama hâlâ npm 6'ya (veya yarn 1'e) sabitlenmiş bir projeyi düzenliyorsanız sıra otomatik değişmez. Bağımlılık anahtarlarını yapıştırın, A-Z sıralayın, geri yapıştırın. Bir sonraki PR'nizde gerçek değişikliğin üstünde 200 satırlık bir yeniden sıralama commit'i olmaz.
Satırları sıralama: hızlı başvuru
Bu aracın açtığı sort seçeneklerinin ve kapsadığı sınır durumların kısa kopya kağıdı.
| Topic | What this tool does |
|---|
| Lexicographic vs collation | Lexicographic (codepoint) sort, ham Unicode değerine göre sıralar: A (U+0041), a (U+0061)'dan önce. Collation sort Unicode Collation Algorithm'ı izler ve harf durumlarını içe geçirir. Bu araç varsayılanda collation kullanır; codepoint sırası için Büyük-küçük harf duyarlı'yı işaretleyin. |
|---|
| Büyük-küçük harf duyarlılığı | Varsayılan duyarsız: apple, Apple ve APPLE eşit karşılaştırılır. Üçüncül collation seviyesinde A < a < B < b sırası için ya da C locale ile birleştirildiğinde ham codepoint sırası için duyarlıya geçin. |
|---|
| Natural sort | Açıkken 2 ve 10 sayı olarak karşılaştırıldığı için file2 < file10 olur. Kapalıyken 1 (U+0031) karakter karakter 2 (U+0032)'den küçük olduğu için file10 < file2 olur. Dosya adları, sürüm dizgileri ve gömülü sayı içeren her liste için kullanın. |
|---|
| Locale farkındalığı | Sort sayfanın locale'ine uyar; Fransızca'da é, e'nin yanına sıralanır, Almanca ä DIN 5007-2 telefon rehberi sırasında ae olarak sıralanır vb. Unix'in sort komutu LC_COLLATE ayarlıysa aynısını yapar; LC_ALL=C sort codepoint sırasına geri düşer, daha hızlıdır ama aksanları yabancı harf gibi muamele eder. |
|---|
| Boş satır işleme | Boş satırlar artan sırada boş olmayan herhangi bir satırdan önce sıralanır, bu yüzden en üstte kümelenirler. Tamamen düşürmek için Boş satırları kaldır'ı işaretleyin. Girdinin sonundaki kapanış newline olduğu gibi korunur, böylece çıktı cat ve benzeri araçlardan sürpriz yaşamadan round-trip yapar. |
|---|
| Kararlılık | Sort kararlıdır: ayarlarınız altında eşit karşılaştırılan satırlar orijinal göreli sıralarını korur. Bu, bir önek üzerinden sıraladığınızda veya büyük-küçük harf duyarsız modda bir berabere grubu içinde girdi sırasını korumak istediğinizde önemlidir. Hem V8 (Chrome, Edge, Node) hem de SpiderMonkey (Firefox) 2019'dan beri kararlı Array.prototype.sort'u garanti eder. |
|---|
| Satır sonları (LF vs CRLF) | Girdi \r\n, \n ve \r üzerinden bölünür. Çıktı varsayılanda \n ile birleştirilir, böylece Linux ve macOS akışlarına temiz yapıştırılır. Bir Windows aracı için CRLF gerekiyorsa sonucu Windows farkındalıklı bir editöre yapıştırın ve istediğiniz satır sonu ile kaydedin. |
|---|
| Kodlama | Girdi UTF-8 olarak ele alınır (tarayıcıdaki metin zaten çözülmüş haldedir). Varsa baştaki UTF-8 BOM ilk satırda korunur; soymak isterseniz kardeş araç whitespace-cleaner kaldırır. |
|---|
Satırları sıralama: sıkça sorulan sorular
Varsayılan sort sırası nedir?
Sayfa locale'iyle tarayıcının Intl.Collator'unu kullanan locale duyarlı artan sıra. Yani Excel ve Google Sheets'in sıraladığı gibi A < a < B < b; her büyük harfin her küçük harften önce geldiği ham codepoint sırası değil. Codepoint sırası istiyorsanız Büyük-küçük harf duyarlı seçeneğini işaretleyin: bu, collator'u sıkı üçüncül seviye karşılaştırmaya çevirir ve LC_ALL=C sort ile aynı sırayı verir.
Sort büyük-küçük harf duyarlı mı, duyarsız mı?
Varsayılan olarak duyarsız. Apple, apple ve APPLE aynı anahtara çöker, dolayısıyla çıktıda kümelenir ve aralarındaki sıra girdide ilk hangisi göründüyse o olur (sort kararlıdır). Onları ayırmak için Büyük-küçük harf duyarlı'yı işaretleyin; bu durumda APPLE, Apple ve apple, Unicode varsayılan collation'unun üçüncül seviyesine göre üç farklı değer olarak sıralanır.
file2'nin file10'dan önce gelmesi gibi natural sort destekleniyor mu?
Evet. Natural sort seçeneğini açın ve gömülü sayılar sayı olarak karşılaştırılır, böylece file2.log, file10.log'dan önce ve v1.9, v1.10'dan önce gelir. Uygulama Intl.Collator'daki numeric: true seçeneğidir; macOS Finder ve Windows Gezgini'nin dosya adlarını sıralamak için kullandığı aynı temel ilke.
Tersten (Z'den A'ya) sıralayabilir miyim?
Evet. Sıra anahtarından Azalan'ı seçin. Sort önce artan sırada çalışır, sonra ters çevrilir; bu eşit anahtarlar arasında kararlılığı korur: iki satır sizin büyük-küçük harf ve natural sort ayarlarınız altında eşit karşılaştırırsa, ters çevirmenin ardından bile orijinal göreli sıralarını korur. Bu, bir TSV'nin ilk sütunu gibi kısmi bir anahtara göre sıralarken önemlidir.
Yinelenen satırlar ve boş satırlara ne olur?
Varsayılanda ikisi de korunur. Sort kararlıdır, dolayısıyla yinelenenler orijinal göreli sıralarını korur ve boş satırlar artan sırada en üstte kümelenir (boş olmayan herhangi bir dizgiden önce sıralanırlar). Sıralamadan önce düşürmek için Boş satırları kaldır'ı, eşit satırları teke indirgemek için Yinelenenleri kaldır'ı işaretleyin. Daha çok seçenekli özel bir dedup geçişi için Yinelenen satırları kaldır'ı kullanın.
Boyut limiti var mı?
Yaklaşık 100.000 satıra kadar tarayıcıda saniyenin altında çalışır. 500.000 satırı aştığınızda fark etmeye başlarsınız; bu çoğunlukla sort'un kendisi değil sonuç panelini render etmenin pahalıya patlamasından kaynaklanır. Milyonlarca satırlık dosyalar için LC_ALL=C sort -u file.txt ile unix'in sort komutu daha hızlıdır ve out-of-core çalışır. Bilmeye değer flag'ları GNU coreutils sort kılavuzu kapsar.
Gizlilik ve nasıl çalışır
Metniniz tarayıcınızdan asla çıkmaz. Bölme, karşılaştırma ve birleştirme tamamen yerelde çalışır. Girdiniz üzerinde analitik yok, log yok, sunucu turu yok. Karşılaştırmanın kendisi tarayıcının yerel Intl.Collator'udur ve Unicode Collation Algorithm (UTS #10)'ı uygular. Arka plan okuması istiyorsanız Wikipedia'da genel olarak sıralama algoritmaları hakkında sağlam bir genel bakış var.