14 Nuttige voorbeelden van het ‘Sort’-commando in Linux – Deel 1

De ‘sort’ opdracht is een Linux programma dat wordt gebruikt voor het afdrukken van regels uit invoertekstbestanden en het samenvoegen van alle bestanden in gesorteerde volgorde. De sorteeropdracht gebruikt een lege ruimte als veldscheidingsteken en het gehele invoerbestand als sorteersleutel. Het is belangrijk op te merken dat de sorteeropdracht de bestanden niet daadwerkelijk sorteert, maar alleen de gesorteerde uitvoer afdrukt totdat u de uitvoer doorstuurt.

Dit artikel heeft tot doel een diepgaand inzicht te geven in de Linux ‘sorteer‘ opdracht met 14 nuttige praktijkvoorbeelden die laten zien hoe u de sorteeropdracht in Linux kunt gebruiken.

1. Het maken van een tekstbestand met gespecificeerde inhoud

Allereerst zullen we een tekstbestand maken, genaamd ‘tecmint.txt‘, dat zal worden gebruikt voor het uitvoeren van ‘sorteer‘ opdracht voorbeelden in onze werkmap voor deze taak is ‘/home/$GEBRUIKER/Bureaublad/tecmint‘.

De optie ‘-e‘ in de onderstaande opdracht maakt interpretatie van de backslash mogelijk en /n vertelt echo opdracht om elke string naar een nieuwe regel te schrijven.

echo -e "computer\nmouse\nLAPTOP\ndata\nRedHat\nlaptop\ndebian\nlaptop" > tecmint.txt

2. Bestandsinhoud bekijken

Voordat we beginnen met de ‘sorteer‘ opdracht, laten we eens kijken naar de inhoud van het bestand en hoe het eruit ziet met behulp van de volgende cat opdracht.3. Sorteren van bestandsinhoud

cat tecmint.txt

3. Sorteren van bestandsinhoud

De opdracht “sort tecmint.txt” wordt gebruikt om de regels in het bestand in oplopende alfabetische volgorde te herschikken. Als er dubbele regels zijn, houdt het één exemplaar van elke unieke regel aan.

sort tecmint.txt

Note: The above command doesn’t sort the contents of the text file but only displays the sorted output on the terminal.

4. Omleiden van gesorteerde uitvoer naar nieuw bestand

De volgende opdracht wordt gebruikt om de regels van het tekstbestand “tecmint.txt” in alfabetische volgorde te sorteren en vervolgens de gesorteerde uitvoer om te leiden naar een nieuw bestand met de naam “sorted.txt“, wat betekent dat het oorspronkelijke bestand ongewijzigd blijft en de gesorteerde inhoud in een apart bestand wordt opgeslagen.

Om de inhoud te verifiëren, gebruik de cat-opdracht.

sort tecmint.txt > sorted.txt
cat sorted.txt

5. Sorteren van bestandsinhoud in omgekeerde volgorde

De volgende opdracht wordt gebruikt om de regels van het tekstbestand “tecmint.txt” in omgekeerde volgorde te sorteren, wat betekent dat het de regels in aflopende alfabetische volgorde zal rangschikken en de gesorteerde uitvoer vervolgens omleidt naar een nieuw bestand met de naam “reversesorted.txt

sort -r tecmint.txt > reversesorted.txt
cat reversesorted.txt

6. Opslaan van lijst van bestanden en directories

De volgende opdracht wordt gebruikt om de inhoud van de thuismap van de gebruiker (“/home/$USER“) weer te geven in een gedetailleerde, lange indeling met behulp van de ls command en vervolgens wordt deze directorylijst omgeleid naar een tekstbestand met de naam “lsl.txt” dat zich op de bureaublad van de gebruiker bevindt, specifiek in de “tecmint” directory.

ls -l /home/$USER > /home/$USER/Desktop/tecmint/lsl.txt
cat lsl.txt

Nu gaan we voorbeelden bekijken van het sorteren van de inhoud op basis van velden anders dan de standaard initiële tekens.

7. Sorteren van ‘bestandsinhoud op basis van het tweede veld

De volgende opdracht wordt gebruikt om de inhoud van het bestand “lsl.txt” te sorteren op basis van de waarden in het tweede veld van elke regel. De '-n' optie geeft aan dat er een numerieke sorteermethode wordt gebruikt, waarbij het tweede veld als getallen wordt behandeld in plaats van tekst.

De '-k2' optie geeft aan dat we willen sorteren op basis van het tweede veld. Door deze opdracht uit te voeren, krijg je een gesorteerde lijst van de regels in “lsl.txt“, waarbij de sorteercriteria de numerieke waarden in het tweede veld van elke regel zijn.

sort -nk2 lsl.txt

8. Sorteren van bestandsinhoud op basis van het negende veld

De volgende opdracht wordt gebruikt om de regels in het bestand “lsl.txt” te sorteren op basis van de waarden in het negende veld van elke regel in oplopende volgorde. De '-k9' optie geeft aan dat het sorteren moet worden gedaan op basis van het negende veld.

sort -k9 lsl.txt

9. Bestanden sorteren op bestandsgrootte

De volgende opdracht combineert de ‘ls‘ en ‘sort‘ opdrachten om de inhoud van de thuismap van de gebruiker weer te geven in een uitgebreide weergave en vervolgens wordt de mapweergave gepipe’d naar ‘sort -nk5‘, wat de lijst sorteert op basis van de waarden in de vijfde kolom, die de bestandsgroottes vertegenwoordigt.

ls -l /home/$USER | sort -nk5

10. Verwijderen van dubbele regels in bestand

De volgende opdracht sorteert de regels in het bestand “tecmint.txt” in oplopende alfabetische volgorde en verwijdert elke dubbele regel met behulp van de ‘-u‘ optie, die staat voor “uniek“, en zorgt ervoor dat unieke regels behouden blijven in de gesorteerde uitvoer.

$ cat tecmint.txt
$ sort -u tecmint.txt

Regels tot nu toe (wat we hebben waargenomen):

  • Regels die met cijfers beginnen, worden in de lijst bevoordeeld en staan bovenaan tot anders aangegeven (-r).
  • Regels die met kleine letters beginnen, worden in de lijst bevoordeeld en staan bovenaan tot anders aangegeven (-r).
  • Inhoud wordt op basis van het voorkomen van letters in het woordenboek weergegeven tot anders aangegeven (-r).
  • De sorteeropdracht behandelt standaard elke regel als een string en sorteert deze vervolgens afhankelijk van het voorkomen van letters in het woordenboek (Numeriek bevoordeeld; zie regel – 1) tot anders aangegeven.

11. Doorsturen van mapweergave naar bestand

De volgende opdracht geeft de inhoud van de gebruiker zijn thuismap weer in lange indeling, inclusief verborgen bestanden en mappen en stuurt de mapweergave door naar een tekstbestand genaamd “lsla.txt” gelegen op het bureaublad van de gebruiker in de “tecmint” map.

ls -lA /home/$USER > /home/$USER/Desktop/tecmint/lsla.txt
cat lsla.txt

Degenen die bekend zijn met de ls opdracht begrijpen dat 'ls -lA' gelijkwaardig is aan 'ls -l' plus verborgen bestanden. Hierdoor zal het grootste deel van de inhoud in deze twee opdrachten hetzelfde zijn.

12. Sorteren van inhoud van bestanden

De volgende opdracht sorteert de inhoud van twee tekstbestanden, ‘lsl.txt‘ en ‘lsla.txt‘, in opklimmende alfabetische volgorde en combineert en toont vervolgens de gesorteerde inhoud in de terminal.

$ sort lsl.txt lsla.txt

Let op het herhalen van bestanden en mappen.

13. Verwijderen van dubbele regels in bestand

De volgende opdracht combineert en sorteert de inhoud van twee tekstbestanden, ‘lsl.txt‘ en ‘lsla.txt‘, in opklimmende alfabetische volgorde terwijl het alle dubbele regels verwijdert met behulp van de '-u' optie, die ervoor zorgt dat unieke regels behouden blijven in de gesorteerde uitvoer.

$ sort -u lsl.txt lsla.txt

Merk op dat duplicaten zijn weggelaten uit de uitvoer. Bovendien kunt u de uitvoer opslaan in een nieuw bestand door deze te herleiden.

14. Sorteren van Uitvoer op Meerdere Velden met behulp van Aangepaste Tekenreeks

De volgende opdracht combineert de ‘ls‘ en ‘sort‘ opdrachten om de inhoud van de thuismap van de gebruiker in lang formaat weer te geven en vervolgens leidt het de mapweergave naar de ‘sort‘ opdracht, die de uitvoer sorteert op basis van specifieke kolommen en velden.

ls -l /home/$USER | sort -t "," -nk2,5 -k9

Hier is een uitleg van de opdracht:

  • -t "," – geeft aan dat een komma (",") wordt gebruikt als veldscheidingsteken.
  • -nk2,5 – geeft aan dat gesorteerd wordt op basis van een numerieke waarde in kolommen 2 tot 5, die meestal toegangrechten en eigendomsgegevens vertegenwoordigen.
  • -k9 – sorteert verder op basis van de negende kolom, die de bestandsgroottes vertegenwoordigt.

Dat is het voor nu. In het volgende artikel gaan we in op meer gedetailleerde voorbeelden van de sort-opdracht voor jou.

Blijf delen, reageren, liken en help ons een groter publiek te bereiken.

Source:
https://www.tecmint.com/sort-command-linux/