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