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.
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
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.