Nyheter i Android, Telefoner, Prylar Och Recensioner

Hur man sorterar textfiler i Linux med hjälp av sorteringskommandot

Linux ger dig flera verktyg som du kan använda för att bearbeta textfiler. Oavsett om du vill ta bort dubbletter av data eller sortera innehållet i en fil, har Linux kommandoradsverktyg allt du behöver.

Den här artikeln kommer att demonstrera sorteringskommandot och hur du kan använda det för att sortera innehållet i en textfil och ordna det därefter.

Vad är sortskommandot?

Som nämnts ovan hjälper sort-kommandot en användare att ordna innehållet i en textfil i en viss ordning. Det finns flera alternativ som gör att du kan sortera filen efter dina önskemål. Det är ett standard Linux-program som kan sortera en textfil alfabetiskt, numeriskt, efter kolumn och mer, i antingen normal eller omvänd ordning.

Andra funktioner i kommandot inkluderar att ignorera teckenfall vid sortering, sortering av en fil efter månad, ignorering av tomma tecken i en fil och slumpvis sortering. Med sortering kan du också kontrollera om en fil redan är sorterad eller inte.

Hur man använder sortering i Linux

Även om sort innehåller flera metoder och flaggor som du kan använda, är det fortfarande lätt att lära sig.

Grundläggande syntax

Den grundläggande syntaxen för att använda sortering är:

sort filename

…var filnamn är den absoluta eller relativa sökvägen till textfilen som du vill sortera.

Som standard ordnar sort innehållet enligt följande kriterier:

    Rader som börjar med numeriska tecken har högsta prioritet. Kommandot kommer att sortera raderna alfabetiskt, efter att raderna har sorterats som börjar med siffror. Rader som börjar med gemener föregår raderna som börjar med samma tecken med stora bokstäver.

Tänk på en textfil som heter textfile.txt som innehåller följande information:

Så här sorterar du filen med standardkonfigurationen:

sort textfile.txt

Produktion:

Skapa en ny utdatafil

Sorteringskommandot ändrar inte innehållet i filen. Den skickar helt enkelt det sorterade innehållet till standardutgången. Detta betyder dock inte att den typen inte kan skapa en ny fil. Du kan använda -o flagga för att ange namnet på den sorterade filen och sortering skapar automatiskt filen åt dig och lägger till innehållet.

sort -o sortedfile filename

…var sorterad fil är namnet på utdatafilen och filnamn är originalfilen som behöver sorteras.

Relaterad  Hur fungerar det automatiska nödbromssystemet i bilar?

Att sortera textfile.txt och skapa en ny utdatafil för innehållet:

sort -o sorted.txt textfile.txt

Produktion:

Sortera flera filer

För att sortera mer än en fil samtidigt, skicka helt enkelt filnamnen separerade med Plats karaktär.

sort textfile.txt textfile2.txt

Produktion:

Observera att sortering kommer att slå samman utdata från filerna och visa dem tillsammans i terminalen.

Omvänd sortering av en fil

Om du vill ändra arrangemanget av innehållet, använd -r flagga med standardkommandot. De -r i följande kommando står för Omvänd.

sort -r textfile.txt

Produktion:

Sortera en fil numeriskt

För att sortera en fil som innehåller numeriska data, använd -n flagga med kommandot. Som standard ordnar sortering data i stigande ordning.

sort -n numbers.txt

Produktion:

Om du vill sortera i fallande ordning, vänd på arrangemanget med hjälp av -r alternativ tillsammans med -n flagga i kommandot.

sort -rn numbers.txt

Produktion:

Ignorera skiftläge under sortering

Som standard tar sortering hänsyn till innehållets skiftläge. Rader som börjar med gemener föregår rader som börjar med versalversionen av samma tecken. Till exempel kommer “han är en pojke” att föregå “Han är en pojke”.

Om du vill att sortering ska ignorera skiftläge, anger du -f eller den –ignorera fall flagga enligt följande:

sort -f textfile.txt
sort --ignore-case textfile.txt

Produktion:

Sortera en fil baserat på månad

Använda -M flagga, kan du ändra ordningen på en fils innehåll baserat på månadsnamn.

sort -M textfile2.txt

Produktion:

Ignorera Leading Blanks

Ibland kan filen som du vill sortera innehålla mellanslag eller tabbar. För att ignorera sådana tomma tecken, använd -b flagga.

sort -b fileblanks.txt

Produktion:

Sortera en fil efter en kolumn

Om du har en textfil med data ordnade i separata kolumner kan du sortera filen efter innehållet i en kolumn. Allt du behöver göra är att skicka kolumnnumret tillsammans med -k flagga.

Överväg en textfil som innehåller filinformation med olika kolumner. För att sortera en fil med namnet output.txt enligt åttonde kolumnen:

sort -k8 -rn output.txt

Produktion:

Relaterad  Tredjepersons skräckspel Tormentor får en ny gameplaytrailer

Rörsortering med andra kommandon

Du kan till och med använda sortera med andra Linux-kommandon för att ändra arrangemanget av utdata. Till exempel, för att sortera utdata från kommandot ls efter storleken på filerna:

ls -la | sort -k5 -rn

Produktion:

Sortera en fil slumpmässigt

Du kan använda -R flagga om du vill randomisera ordningen på raderna i en textfil. Tänk på filen textfile.txt:

sort -R textfile.txt

Produktion:

Sortera versionsnummer i en fil

Om du har en textfil som innehåller versionsinformation kopplad till ett paket, kan du sortera dess innehåll med hjälp av -V eller –version-sort flagga.

sort -V version.txt
sort --version-sort version.txt

Produktion:

Kontrollera om en fil är sorterad

De -c flaggan hjälper dig att identifiera filer som redan är sorterade enligt de angivna alternativen. Om innehållet i filen är korrekt sorterat kommer sorteringen inte att visa någon utdata.

För att kontrollera om filen textfile.txt är sorterad:

sort -c textfile.txt

Låt oss nu sortera filen och spara dess utdata till en ny fil med namnet sorterad.txt. När du utfärdar följande kommando:

sort -c sorted.txt

Produktion:

Du kan också ange olika flaggor för att kontrollera filens arrangemang enligt särskilda kriterier. Till exempel för att kontrollera om filen nummer.txt sorteras i fallande ordning:

sort -c -rn numbers.txt

Du kommer att se en utdata som säger att filen inte är korrekt sorterad. Låt oss sortera filen och kontrollera om den nya filen klarar testet.

sort -o sorted.txt -rn numbers.txt
sort -c -rn sorted.txt

Produktion:

Sortera filen och ta bort dubbletter

Filen som du arbetar med kan innehålla dubbletter av data. Även om du kan använda kommandot uniq för att ta bort sådan information från filen, kan sort utföra den här uppgiften åt dig. De -u eller –unik flagga är vad du behöver.

Tänk på en fil som heter duplicate.txt:

Så här sorterar du filen och tar bort de upprepade uppgifterna:

sort -u duplicate.txt

Produktion:

Relaterad  [TGA 2021] Tidigare BioWare-VD avslöjar Nightingale, ett viktorianskt fantasy-överlevnadsspel med hantverk, byggnad, världar och tidig åtkomst på Steam

Du kan se det när du använder -u flagga, sorterar visar endast distinkta linjer och arrangerar dem enligt de angivna kriterierna.

Arbeta med textfiler i Linux

Även om kraften i kommandoradstextredigerare är oöverträffad, kan du fortfarande välja en grafisk redigerare som gedit för att enkelt ändra innehållet i en textfil. Det är också ett bättre val för dem som är nya i Linux och inte kan hantera terminalen.

Det bästa sättet att börja med kommandoraden, och Linux i allmänhet, är genom att öva på grundläggande kommandon först. Efter att ha täckt de grundläggande verktygen är det förmodligen det bästa sättet att gradvis avancera mot mer komplexa kommandon.

Om författaren

Deepesh Sharma (110 publicerade artiklar)

Deepesh är Junior Editor för Linux på MUO. Han skriver informationsguider om Linux, i syfte att ge alla nykomlingar en lycksalig upplevelse. Inte säker på filmer, men om du vill prata om teknik är han din kille.

Mer från Deepesh Sharma

Prenumerera på vårt nyhetsbrev

Gå med i vårt nyhetsbrev för tekniska tips, recensioner, free e-böcker och exklusiva erbjudanden!

Klicka här för att prenumerera