Linux biedt u verschillende hulpprogramma's die u kunt gebruiken om tekstbestanden te verwerken. Of je nu dubbele gegevens wilt verwijderen of de inhoud in een bestand wilt sorteren, Linux-opdrachtregelprogramma's hebben alles wat je nodig hebt.
Dit artikel demonstreert de sorteeropdracht en hoe u deze kunt gebruiken om de inhoud in een tekstbestand te sorteren en dienovereenkomstig te rangschikken.
Wat is het sorteercommando?
Zoals hierboven vermeld, helpt het sort-commando een gebruiker bij het ordenen van de inhoud van een tekstbestand in een bepaalde volgorde. Er zijn verschillende opties beschikbaar waarmee u het bestand naar wens kunt sorteren. Het is een standaard Linux-programma dat een tekstbestand alfabetisch, numeriek, per kolom en meer kan sorteren, in normale of omgekeerde volgorde.
Andere functionaliteiten van de opdracht zijn onder meer het negeren van hoofdletters bij het sorteren, het sorteren van een bestand op maand, het negeren van lege plekken in een bestand en willekeurig sorteren. Met sort kunt u ook controleren of een bestand al is gesorteerd of niet.
Sorteren gebruiken in Linux
Hoewel sort verschillende methoden en vlaggen bevat die u kunt gebruiken, blijft het eenvoudig te leren.
Basissyntaxis
De basissyntaxis van het gebruik van sorteren is:
sorteer bestandsnaam
...waar bestandsnaam is het absolute of relatieve pad van het tekstbestand dat u wilt sorteren.
Sorteren zal standaard de inhoud rangschikken volgens de volgende criteria:
- Regels die beginnen met numerieke tekens hebben de hoogste prioriteit.
- De opdracht sorteert de regels alfabetisch, na het sorteren van de regels die met cijfers beginnen.
- Regels die beginnen met kleine letters gaan vooraf aan de regels die beginnen met hetzelfde karakter in hoofdletters.
Overweeg een tekstbestand met de naam tekstbestand.txt met daarin de volgende informatie:
Om het bestand te sorteren met de standaardconfiguratie:
sorteer tekstbestand.txt
Uitgang:
Een nieuw uitvoerbestand maken
Het sort commando wijzigt de inhoud van het bestand niet. Het stuurt eenvoudig de gesorteerde inhoud naar de standaarduitvoer. Dit betekent echter niet dat sort geen nieuw bestand kan maken. U kunt de -O vlag om de naam van het gesorteerde bestand op te geven en sort zal automatisch het bestand voor u maken en de inhoud toevoegen.
sort -o gesorteerdbestand bestandsnaam
...waar gesorteerd bestand is de naam van het uitvoerbestand en bestandsnaam is het originele bestand dat moet worden gesorteerd.
Sorteren tekstbestand.txt en maak een nieuw uitvoerbestand voor de inhoud:
sort -o gesorteerd.txt tekstbestand.txt
Uitgang:
Meerdere bestanden sorteren
Om meer dan één bestand tegelijk te sorteren, geeft u gewoon de bestandsnamen door, gescheiden door de Ruimte karakter.
sorteer tekstbestand.txt tekstbestand2.txt
Uitgang:
Merk op dat sort de uitvoer van de bestanden zal samenvoegen en ze samen in de terminal zal weergeven.
Een bestand omgekeerd sorteren
Als u de rangschikking van de inhoud wilt omkeren, gebruikt u de -r vlag met de standaardopdracht. De -r in het volgende commando staat voor Omgekeerde.
sort -r tekstbestand.txt
Uitgang:
Een bestand numeriek sorteren
Om een bestand met numerieke gegevens te sorteren, gebruikt u de -n vlag met het commando. Sorteren zal standaard de gegevens in oplopende volgorde rangschikken.
sort -n getallen.txt
Uitgang:
Als u in aflopende volgorde wilt sorteren, keert u de rangschikking om met de -r optie samen met de -n vlag in de opdracht.
sort -rn numbers.txt
Uitgang:
Negeer hoofdletters tijdens het sorteren
Sorteren houdt standaard rekening met het hoofdlettergebruik van de inhoud. Regels die beginnen met kleine letters gaan vooraf aan regels die beginnen met de hoofdletterversie van hetzelfde teken. Bijvoorbeeld, "hij is een jongen" zal voorafgaan aan "Hij is een jongen".
Als u wilt dat sorteren de hoofdletters negeert, specificeert u de -f of de --negeer zaak vlag als volgt:
sort -f tekstbestand.txt
sort --ignore-case textfile.txt
Uitgang:
Sorteer een bestand op basis van maand
De... gebruiken -M flag, kunt u de volgorde van de inhoud van een bestand wijzigen op basis van maandnamen.
sort -M tekstbestand2.txt
Uitgang:
Negeer voorloopspaties
Soms kan het bestand dat u wilt sorteren spaties of tabs bevatten. Om dergelijke lege tekens te negeren, gebruikt u de -b vlag.
sort -b fileblanks.txt
Uitgang:
Sorteer een bestand volgens een kolom
Als u een tekstbestand heeft met gegevens die in afzonderlijke kolommen zijn gerangschikt, kunt u het bestand sorteren op basis van de inhoud van een kolom. Het enige wat u hoeft te doen is het kolomnummer samen met de -k vlag.
Overweeg een tekstbestand met bestandsinformatie met verschillende kolommen. Een bestand met de naam sorteren output.txt volgens de achtste kolom:
sort -k8 -rn output.txt
Uitgang:
Pijp sorteren met andere opdrachten
Je kunt zelfs sorteren met andere Linux-commando's gebruiken om de indeling van de uitvoer te wijzigen. Om bijvoorbeeld de uitvoer van te sorteren het ls-commando volgens de grootte van de bestanden:
ls -la | sorteer -k5 -rn
Uitgang:
Een bestand willekeurig sorteren
U kunt de -R vlag als u de volgorde van de regels in een tekstbestand willekeurig wilt maken. Overweeg het bestand tekstbestand.txt:
sort -R tekstbestand.txt
Uitgang:
Versienummers in een bestand sorteren
Als u een tekstbestand hebt met versie-informatie die aan een pakket is gekoppeld, kunt u de inhoud ervan sorteren met de -V of --versie-sorteren vlag.
sort -V versie.txt
sort --version-sort version.txt
Uitgang:
Controleren of een bestand is gesorteerd
De -c flag helpt u bij het identificeren van bestanden die al zijn gesorteerd volgens de opgegeven opties. Als de inhoud van het bestand correct is gesorteerd, zal sort geen uitvoer weergeven.
Om te controleren of het bestand tekstbestand.txt is uitgezocht:
sort -c tekstbestand.txt
Laten we nu het bestand sorteren en de uitvoer opslaan in een nieuw bestand met de naam gesorteerd.txt. Bij het geven van de volgende opdracht:
sort -c gesorteerd.txt
Uitgang:
U kunt ook verschillende vlaggen specificeren om de indeling van het bestand volgens bepaalde criteria te controleren. Om bijvoorbeeld te controleren of het bestand nummers.txt wordt in aflopende volgorde gesorteerd:
sort -c -rn getallen.txt
U ziet een uitvoer waarin staat dat het bestand niet goed is gesorteerd. Laten we het bestand sorteren en controleren of het nieuwe bestand de test doorstaat.
sort -o gesorteerd.txt -rn getallen.txt
sort -c -rn gesorteerd.txt
Uitgang:
Sorteer het bestand en verwijder duplicaten
Het bestand waarmee u werkt, kan dubbele gegevens bevatten. Hoewel je kunt gebruiken het uniq-commando om dergelijke informatie uit het bestand te verwijderen, kan sort deze taak voor u uitvoeren. De -u of --uniek vlag is wat je nodig hebt.
Overweeg een bestand met de naam dupliceren.txt:
Om het bestand te sorteren en de herhaalde gegevens te verwijderen:
sort -u duplicate.txt
Uitgang:
Dat zie je als je de -u vlag, sorteert alleen afzonderlijke regels en rangschikt ze volgens de opgegeven criteria.
Werken met tekstbestanden in Linux
Hoewel de kracht van teksteditors via de opdrachtregel niet te evenaren is, kun je toch kiezen voor een grafische editor zoals gedit om de inhoud van een tekstbestand gemakkelijk aan te passen. Het is ook een betere keuze voor degenen die nieuw zijn in Linux en niet met de terminal kunnen omgaan.
De beste manier om te beginnen met de opdrachtregel, en Linux in het algemeen, is door eerst de basisopdrachten te oefenen. Na het behandelen van de fundamentele hulpprogramma's, is het waarschijnlijk de beste aanpak om geleidelijk over te gaan naar complexere commando's.
Dit eenvoudige spiekbriefje helpt je in een mum van tijd vertrouwd te raken met de Linux-opdrachtregelterminal.
Lees volgende
- Linux
- Bestandsbeheer
- Linux
- Linux-opdrachten
Deepesh is de Junior Editor voor Linux bij MUO. Hij schrijft al meer dan 3 jaar informatieve content op internet. In zijn vrije tijd houdt hij van schrijven, naar muziek luisteren en gitaar spelen.
Abonneer op onze nieuwsbrief
Word lid van onze nieuwsbrief voor technische tips, recensies, gratis e-boeken en exclusieve deals!
Nog een stap…!
Bevestig uw e-mailadres in de e-mail die we u zojuist hebben gestuurd.