Line Sorter

Řaďte řádky abecedně, podle délky, obráceně nebo náhodně

Zkusit příklad

Vstupní řádky

Seřazené řádky

Běží lokálně · Bezpečné pro vkládání tajných údajů
Seřazené řádky se zde zobrazí…

Co je řazení řádků?

Řazení řádků je proces přeuspořádání řádků textového bloku podle určitého pravidla: abecedního pořadí, opačného pořadí, délky řádku nebo náhodného promíchání. Řazení řádků online je běžný úkol při práci s logovacími soubory, CSV daty, konfiguračními seznamy nebo jakýmkoli prostým textem, kde záleží na pořadí. Operace rozdělí text na znacích nového řádku, aplikuje porovnávací funkci na výsledné pole a seřazené řádky opět spojí.

Většina programovacích jazyků řadí řetězce ve výchozím nastavení pomocí lexikografického porovnání, které porovnává znaky podle jejich kódových bodů v Unicode. To znamená, že velká písmena se řadí před malá ("Banana" před "apple") a číslice se řadí před písmena. Řazení zohledňující prostředí (locale), někdy označované jako přirozené řazení nebo kolace, to napravuje aplikací jazykově specifických pravidel. Funkce localeCompare() v JavaScriptu, locale.strxfrm() v Pythonu a příkaz POSIX sort s proměnnou LC_COLLATE zajišťují řazení zohledňující prostředí.

Řazení podle délky je užitečné, když potřebujete najít nejkratší nebo nejdelší položky v seznamu, identifikovat odlehlé hodnoty ve výstupu logů nebo uspořádat položky podle složitosti. Obrácené řazení převrátí stávající pořadí řádků bez jejich přeuspořádání, což se liší od abecedního řazení Z–A. Náhodné promíchání přiřadí každému řádku náhodný klíč řazení, čímž vznikne pokaždé jiné pořadí. Přepínání mezi režimy na stejném vstupu je rychlejší než psaní jednorázového skriptu.

Proč používat tento Line Sorter?

Vložte text, zvolte režim řazení a výsledek získáte okamžitě. Žádné nastavení příkazového řádku, žádné soubory skriptů, žádná instalace balíčků.

Okamžité řazení
Výsledky se zobrazují průběžně při psaní nebo vkládání. Přepínejte mezi šesti režimy řazení a porovnávejte výstupy bez opakovaného spouštění.
🔒
Zpracování s ochranou soukromí
Veškeré řazení probíhá v prohlížeči pomocí JavaScriptu. Váš text zůstává na vašem zařízení. Nic se nenahrává na server ani nezaznamenává.
🔀
Šest režimů řazení
A–Z, Z–A, nejkratší první, nejdelší první, obrácené pořadí a náhodné promíchání. Jeden vstup pokryje nejběžnější úlohy spojené s pořadím řádků.
📋
Bez registrace
Otevřete stránku a začněte řadit. Bez registrace, bez rozšíření, bez desktopové aplikace. Funguje na každém zařízení s moderním prohlížečem.

Případy použití Line Sorteru

Frontend vývoj
Řaďte seznamy CSS tříd, příkazy import nebo klíče překladů i18n abecedně. Konzistentní pořadí snižuje počet konfliktů při slučování ve správě verzí a urychluje revize kódu.
Backend inženýrství
Uspořádejte seznamy závislostí v souborech package.json, requirements.txt nebo go.mod před odevzdáním. Řaďte názvy sloupců SQL při sestavování příkazů CREATE TABLE nebo porovnávání rozdílů schémat.
DevOps a infrastruktura
Řaďte názvy proměnných prostředí v souborech .env, záznamy Kubernetes ConfigMap nebo bloky proměnných Terraform. Abecední pořadí usnadňuje odhalení duplicit a chybějících hodnot při revizi.
QA a testovací automatizace
Řaďte výstupní logy testů podle časového razítka nebo zprávy pro rychlou izolaci selhání. Náhodně promíchejte vstupní testovací data a ověřte, že chování aplikace nezávisí na pořadí vkládání.
Datové inženýrství
Uspořádejte hlavičky CSV nebo seznamy sloupců před tvorbou skriptů pro migraci schématu. Řaďte řádky vzorků dat podle délky a odhalte zkrácené řádky nebo neobvykle dlouhé hodnoty v datovém pipeline.
Studenti a samouci
Řaďte seznamy slovní zásoby, bibliografické záznamy nebo studijní poznámky abecedně. Promíchejte řádky s kartičkami pro náhodné opakování bez instalace samostatné aplikace.

Přehled režimů řazení řádků

Nástroj podporuje šest režimů řazení. Níže uvedená tabulka popisuje každý režim, použitou metodu porovnání a ukázkový výsledek pro vstupní seznam: apple, banana, cherry, date, fig.

RežimPopisJS metodaUkázkový výstup
A-ZAlphabetical ascendinglocaleCompare()apple, banana, cherry
Z-AAlphabetical descendinglocaleCompare() reversedcherry, banana, apple
Length (short)Shortest line firsta.length - b.lengthfig, date, apple, banana
Length (long)Longest line firstb.length - a.lengthbanana, apple, date, fig
ReverseFlip line order, no reorderingArray.reverse()Last line becomes first
RandomRandomized comparator (biased)Math.random() - 0.5Different every run

Řadicí algoritmy na pozadí

Při volání Array.sort() v JavaScriptu používá engine V8 (Chrome, Node.js) od roku 2019 algoritmus Timsort. Jiná prostředí používají odlišné algoritmy. Níže uvedená tabulka porovnává nejběžnější řadicí algoritmy používané ve standardních knihovnách programovacích jazyků. Všechny zvládají pracovní zátěž řazení řádků v tomto nástroji za méně než milisekundu pro typické vstupy (do 100 000 řádků).

AlgoritmusPoužíváČasPoznámky
TimsortPython, Java (Arrays.sort)O(n log n)Stable, fast on partially sorted data
QuicksortC stdlib, V8 (older)O(n log n)In-place, unstable by default
Merge sortMost stable-sort implementationsO(n log n)Stable, predictable, uses extra memory
IntrosortC++ std::sort, .NETO(n log n)Hybrid: quicksort + heapsort fallback
Radix sortFixed-length keys, integersO(nk)Non-comparative, linear for short keys

Příklady kódu

Řaďte řádky programově v JavaScriptu, Pythonu, Go a na příkazovém řádku. Každý příklad pokrývá abecední, délkové a obrácené řazení.

JavaScript
const text = `banana
apple
cherry
date
fig`

// Sort A-Z (locale-aware)
const az = text.split('\n').sort((a, b) => a.localeCompare(b)).join('\n')
// → "apple\nbanana\ncherry\ndate\nfig"

// Sort by line length, shortest first
const byLen = text.split('\n').sort((a, b) => a.length - b.length).join('\n')
// → "fig\ndate\napple\nbanana\ncherry"

// Reverse line order (no alphabetical sorting)
const reversed = text.split('\n').reverse().join('\n')
// → "fig\ndate\ncherry\napple\nbanana"

// Remove duplicates and sort
const unique = [...new Set(text.split('\n'))].sort().join('\n')
Python
text = """banana
apple
cherry
date
fig"""

lines = text.splitlines()

# Sort A-Z (case-insensitive)
az = sorted(lines, key=str.lower)
# → ['apple', 'banana', 'cherry', 'date', 'fig']

# Sort by line length
by_len = sorted(lines, key=len)
# → ['fig', 'date', 'apple', 'banana', 'cherry']

# Reverse original order
rev = lines[::-1]
# → ['fig', 'date', 'cherry', 'apple', 'banana']

# Shuffle randomly
import random
random.shuffle(lines)  # modifies in place
Go
package main

import (
	"fmt"
	"sort"
	"strings"
)

func main() {
	text := "banana\napple\ncherry\ndate\nfig"
	lines := strings.Split(text, "\n")

	// Sort A-Z
	sort.Strings(lines)
	fmt.Println(strings.Join(lines, "\n"))
	// → apple\nbanana\ncherry\ndate\nfig

	// Sort by length
	sort.Slice(lines, func(i, j int) bool {
		return len(lines[i]) < len(lines[j])
	})
	fmt.Println(strings.Join(lines, "\n"))
	// → fig\ndate\napple\nbanana\ncherry
}
CLI (bash)
# Sort lines A-Z
sort file.txt

# Sort lines Z-A (reverse)
sort -r file.txt

# Sort numerically (first field)
sort -n data.txt

# Sort by line length (awk + sort + cut)
awk '{ print length, $0 }' file.txt | sort -n | cut -d' ' -f2-

# Shuffle lines randomly
shuf file.txt          # GNU coreutils
sort -R file.txt       # alternative (not truly uniform)

# Sort and remove duplicates
sort -u file.txt

Nejčastější dotazy

Jaký je rozdíl mezi řazením A–Z a přirozeným řazením?
Řazení A–Z (lexikografické) porovnává znaky podle kódového bodu Unicode. To znamená, že "item10" se řadí před "item2", protože znak '1' má nižší kódový bod než '2'. Přirozené řazení považuje vložená čísla za číselné hodnoty, takže "item2" se řadí před "item10". Tento nástroj používá lexikografické řazení zohledňující prostředí (locale) prostřednictvím localeCompare(), které správně zpracovává znaky s diakritikou, ale neprovádí přirozené řazení čísel.
Odesílá se můj text na server při řazení řádků?
Ne. Veškeré řazení probíhá v prohlížeči pomocí metody Array.sort() JavaScriptu. Text nikdy neopustí vaše zařízení. Ověřit to můžete otevřením záložky Síť v DevTools a potvrzením, že při vložení a seřazení textu nejsou odesílány žádné požadavky.
Kolik řádků tento nástroj zvládne?
Nástroj dobře funguje s desítkami tisíc řádků. Implementace Timsort v enginu V8 JavaScriptu zvládne 100 000 řádků za méně než 100 milisekund na moderním hardwaru. Pro soubory větší než několik megabajtů je efektivnější CLI nástroj, jako je příkaz Unix sort, protože může využívat diskové třídění se slučováním a více vláken.
Jak funguje řazení bez ohledu na velikost písmen?
Tento nástroj používá String.localeCompare() s volbou { sensitivity: 'base' }, která porovnávání nezohledňuje velikost písmen, takže "Apple" a "apple" se řadí dohromady, nikoli do oddělených skupin. Ve výchozím nastavení je localeCompare() citlivé na velikost písmen; pro chování nezávislé na velikosti písmen je explicitní volba nutná. Pokud potřebujete striktní řazení citlivé na velikost písmen, kde velká písmena přicházejí první, poskytne toto chování příkaz Unix sort bez přepínače -f.
Mohu řádky zároveň seřadit a odstranit duplicity?
Tento nástroj řádky seřadí, ale neodstraní duplicity. K odstranění duplicitních řádků použijte nástroj Duplicate Line Remover ve stejné kategorii. Text zde nejprve seřaďte a výsledek pak vložte do nástroje pro odstraňování duplicit — získáte tak čistý, unikátní a seřazený seznam.
Jaký je rozdíl mezi obráceným řazením a řazením Z–A?
Obrácené řazení převrátí původní pořadí řádků: poslední řádek se stane prvním, předposlední druhým atd. Žádné abecední porovnání není zapotřebí. Řazení Z–A uspořádá řádky v sestupném abecedním pořadí bez ohledu na jejich původní pozici. Pokud je váš vstup již seřazen A–Z, obrácené řazení a Z–A dají stejný výsledek, ale pro neseřazený vstup se výsledky liší.
Jak seřadím řádky podle konkrétního sloupce nebo pole?
Tento nástroj řadí podle celého obsahu řádku. Chcete-li řadit podle konkrétního sloupce (například druhého pole v souboru odděleném tabulátory), použijte příkaz Unix sort s přepínačem -k: sort -t$'\t' -k2,2 soubor.txt. V Pythonu rozdělte každý řádek a použijte funkci klíče: sorted(lines, key=lambda x: x.split('\t')[1]).