7 Interessante ‘sorteer’ Commando Voorbeelden in Linux – Deel 2

In onze vorige artikel hebben we verschillende voorbeelden behandeld van de ‘sort‘ opdracht. Als je het gemist hebt, kun je op de volgende link klikken om op te pikken. In deze post gaan we verder waar we in het vorige artikel zijn gebleven, om de resterende aspecten van de opdracht te behandelen. Op deze manier zullen beide artikelen samen dienen als een uitgebreid handboek voor de Linux ‘sort‘ opdracht.

Voordat we verder gaan, maak alsjeblieft een tekstbestand met de naam ‘month.txt‘ aan en vul het met de onderstaande gegevens.

echo -e "mar\ndec\noct\nsep\nfeb\naug" > month.txt
cat month.txt

15. Bestandsinhoud sorteren op maand

De volgende opdracht sorteert de inhoud van het bestand “month.txt” in chronologische volgorde op basis van de maandafkorting of naam met behulp van de '-M' optie die de ‘sort‘ opdracht instrueert om de gegevens als datums te behandelen en ze dienovereenkomstig te sorteren.

sort -M month.txt

16. Uitvoer sorteren op bestandsgrootte in menselijk leesbare indeling

De volgende opdracht combineert de ‘ls‘ en ‘sort‘ opdrachten om twee taken uit te voeren. Ten eerste, het geeft de inhoud van de thuismap van de gebruiker weer in lange indeling en vervolgens, het leidt deze directorylijst naar de ‘sort’ opdracht om bestandsgrootten weer te geven in een menselijk leesbare indeling, waardoor het gemakkelijker wordt om de grootste en kleinste bestanden in de directory te identificeren.

ls -l /home/$USER | sort -h -k5

17. Geordende bestanden controleren op consistentie

In het vorige artikel hebben we twee tekstbestanden gegenereerd: ‘sorted.txt‘ in voorbeeldnummer 4 en ‘lsl.txt‘ in voorbeeldnummer 6. We zijn ervan op de hoogte dat ‘sorted.txt‘ al gesorteerd is, terwijl ‘lsl.txt‘ dat niet is.

Om de sorteertoestand van beide bestanden te controleren, zullen we het ‘sort‘ commando gebruiken, wat ons zal toestaan te bevestigen of ‘sorted.txt‘ nog steeds in de juiste volgorde staat en of ‘lsl.txt‘ gesorteerd moet worden.

sort -c sorted.txt

Als het 0 teruggeeft, betekent dit dat het bestand gesorteerd is en er geen conflict is.

sort -c lsl.txt

18. Afhandeling van scheidingstekens bij het niet gebruiken van spaties in een bestand

Als het scheidingsteken (separator) tussen woorden een spatie is, interpreteert het ‘sort‘ commando automatisch alles na een horizontale spatie als een nieuw woord. Maar wat gebeurt er wanneer het scheidingsteken geen spatie is?

Bekijk een tekstbestand waarvan de inhoud gescheiden is door iets anders dan een spatie zoals '|' of '\' of '+' of '.' of ...</code.

Maak een tekstbestand waarvan de inhoud gescheiden is door +. Gebruik het cat commando om de inhoud van het bestand te controleren.

echo -e "21+linux+server+production\n11+debian+RedHat+CentOS\n131+Apache+Mysql+PHP\n7+Shell Scripting+python+perl\n111+postfix+exim+sendmail" > delimiter.txt
$ cat delimiter.txt

Sorteer dit bestand nu op basis van het 1e veld dat numeriek is.

sort -t '+' -nk1 delimiter.txt

Het tweede is gebaseerd op het 4e veld dat niet-numeriek is.

Als de delimiter Tab is, kunt u $'\t' gebruiken in plaats van '+', zoals getoond in het bovenstaande voorbeeld.

19. Willekeurig sorteren van output op bestandsgrootte

Sorteer de output van het ls -l commando voor uw thuismap op basis van de vijfde kolom, die de ‘hoeveelheid gegevens’ vertegenwoordigt, in willekeurige volgorde.

ls -l /home/avi/ | sort -k5 -R 

Elke keer dat u het bovenstaande script uitvoert, krijgt u waarschijnlijk een ander resultaat, aangezien het resultaat willekeurig wordt gegenereerd.

Zoals duidelijk is uit Regel nummer – 2 van het vorige artikel, geeft het sort commando de voorkeur aan regels die beginnen met kleine letters boven hoofdletters. Controleer ook voorbeeld 3 in het vorige artikel, waar de string ‘laptop‘ voor de string ‘LAPTOP‘ verschijnt.

20. Voorkeuren voor standaardsortering overschrijven

Hoe kunt u de standaardsorteer voorkeur overschrijven? Voordat we de standaardsorteer voorkeur kunnen overschrijven, moeten we de omgevingsvariabele 'LC_ALL' exporteren naar 'C'.

Doe dit door de onderstaande code uit te voeren in uw opdrachtprompt.

export LC_ALL=C

En sorteer vervolgens het tekstbestand ‘tecmint.txt‘ waarbij de standaardsorteervoorkeur wordt overschreven.

$ sort tecmint.txt

Vergeet niet om de uitvoer te vergelijken met degene die u heeft bereikt in voorbeeld 3 en u kunt ook de optie ‘-f‘ oftewel ‘--ignore-case‘ gebruiken om een veel georganiseerdere uitvoer te krijgen.

$ sort -f tecmint.txt

21. Het combineren van twee invoerbestanden in één enkele operatie

Hoe zit het met het uitvoeren van ‘sort‘ op twee invoerbestanden en ze in één keer samenvoegen?

Laten we twee tekstbestanden maken, namelijk ‘bestand1.txt‘ en ‘bestand2.txt‘, en ze vullen met enkele gegevens. In ‘bestand1.txt‘ voegen we nummers toe zoals hieronder weergegeven. We zullen ook het cat-commando gebruiken om de inhoud van het bestand te controleren.

echo -e “5 Reliable\n2 Fast\n3 Secure\n1 open-source\n4 customizable” > file1.txt
cat file1.txt

En het tweede bestand ‘bestand2.txt‘ vullen we met enkele gegevens.

echo -e “3 RedHat\n1 Debian\n5 Ubuntu\n2 Kali\n4 Fedora” > file2.txt
cat file2.txt

Sorteer nu en voeg de uitvoer van beide bestanden samen.

join <(sort -n file1.txt) <(sort file2.txt)

Conclusie

Samenvattend heeft dit artikel verschillende aspecten van het ‘sorteer‘ commando in Linux verkend. We begonnen met basis sorteren op alfabetische volgorde, waagden ons aan numerieke en op datum gebaseerde sortering, en raakten zelfs aangepaste scheidingstekens aan. We hebben ook geleerd hoe we standaard sorteervoorkeuren kunnen overschrijven om aan onze behoeften te voldoen.

Bovendien bespraken we technieken om te controleren of een bestand al gesorteerd is en het combineren van ‘sorteer‘ operaties voor meerdere invoerbestanden. Met de hier opgedane kennis heb je een krachtig gereedschap tot je beschikking voor het efficiënt sorteren en organiseren van gegevens in een Linux-omgeving.

We hopen dat dit artikel informatief en nuttig is geweest voor je command-line inspanningen. Blijf verkennen, leren en de kunst van het ‘sorteer‘ beheersen om je Linux-vaardigheden te verbeteren.

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