Overzicht van sort
`sort` vergelijkt standaard elke regel in zijn geheel en sorteert deze op ASCII-tekens volgorde (alfabetisch), waarna het resultaat naar de standaarduitvoer wordt gestuurd. Het originele bestand wordt niet gewijzigd; om de wijzigingen op te slaan, moet je een omleiding (`>`) gebruiken.
Belangrijkste functies van sort
`sort` wordt voornamelijk gebruikt voor de volgende doeleinden:
Belangrijkste toepassingsgebieden
- Gegevens sorteren: Sorteert logbestanden, datalijsten, gebruikerslijsten, enzovoort op basis van specifieke criteria om de leesbaarheid te verbeteren.
- Duplicaten verwijderen: Op basis van gesorteerde gegevens kunnen duplicaten eenvoudig worden verwijderd. (gebruik samen met `uniq`)
- Rapportages genereren: Sorteert gegevens op basis van specifieke velden om ze in een gemakkelijk te analyseren vorm te brengen.
- Bestanden vergelijken: Kan worden gebruikt om de inhoud van twee bestanden te normaliseren voordat ze worden vergeleken.
Basisprincipes van sorteermethoden
`sort` vergelijkt standaard elke regel vanaf het eerste teken op basis van de tekencode waarden (ASCII waarden). Bij nummers worden ze ook als strings behandeld, dus '10' kan vóór '2' komen, wat onverwachte resultaten kan opleveren. Om dit te voorkomen, moet je de numerieke sorteermogelijkheid gebruiken.
Belangrijkste sort opties
`sort` biedt een verscheidenheid aan opties om sorteernormen, volgorde en duplicaatverwerking nauwkeurig te regelen.
1. Sorteernormen en volgorde
2. Duplicaat en spatiebehandeling opties
3. Uitvoer en scheidingstekens opties
Gegenereerde opdracht:
Probeer de opdrachtcombinaties.
Uitleg:
`sort` Voer het commando uit.
Combineer deze opties en voer de opdracht virtueel uit met de AI.
Voorbeelden van gebruik
Leer hoe je tekstgegevens efficiënt kunt sorteren en analyseren door verschillende toepassingsvoorbeelden van het `sort`-commando.
Basis sortering van bestandsinhoud
echo -e "Charlie\nAlice\nBob" > names.txt
sort names.txt
Sorteert de regels van het bestand `names.txt` in alfabetische volgorde (oplopende volgorde) en geeft deze weer.
Sorteren van bestandsinhoud in omgekeerde volgorde (aflopende volgorde)
echo -e "10\n2\n100" > numbers.txt
sort -r numbers.txt
Sorteert de nummers in het bestand `numbers.txt` door ze als strings te behandelen in omgekeerde volgorde.
Sorteren op basis van numerieke waarden
echo -e "20 Bob\n10 Alice\n100 Charlie" > scores.txt
sort -n scores.txt
Sorteert de scores (eerste veld) in het bestand `scores.txt` in oplopende volgorde op basis van de werkelijke numerieke waarden.
Sorteren op basis van de tweede kolom (naam) van een CSV-bestand
echo -e "1,Bob,Seoul\n3,Alice,Busan\n2,Charlie,Jeju" > users.csv
sort -t',' -k 2 users.csv
Sorteert op basis van het tweede veld (naam) in het door komma's gescheiden bestand `users.csv`.
Duplicaatregels verwijderen na sorteren
echo -e "apple\nbanana\napple\ncherry" > duplicates.txt
sort -u duplicates.txt
Sorteert de inhoud van het bestand `duplicates.txt` en verwijdert vervolgens duplicaatregels zodat er maar één overblijft.
Opslaan van gesorteerde resultaten in een nieuw bestand
echo -e "Zebra\nCat\nDog" > unsorted.txt
sort unsorted.txt -o sorted.txt
Sorteert de inhoud van het bestand `unsorted.txt` en slaat het resultaat op in het bestand `sorted.txt`. Het originele bestand blijft ongewijzigd.
Sorteren op basis van leesbare eenheden
echo -e "10K file1\n2M file2\n500K file3\n1G file4" > sizes.txt
sort -h sizes.txt
Sorteert een lijst met bestandsgroottes rekening houdend met leesbare eenheden (K, M, G). Dit is nuttig bij het sorteren van uitvoer van `du -h`.