14 Nyttige eksempler på Linux-sorteringskommando - Del 1


Sort er et Linux-program, der bruges til at udskrive linjer med inputtekstfiler og sammenkædning af alle filer i sorteret rækkefølge. Sorteringskommandoen tager tom plads som feltseparator og hele inputfilen som sorteringsnøgle. Det er vigtigt at bemærke, at sorteringskommandoen ikke faktisk sorterer filerne, men kun udskriver den sorterede output, indtil du omdirigerer output.

Denne artikel sigter mod dyb indsigt i Linux 'sort' -kommando med 14 nyttige praktiske eksempler, der viser dig, hvordan du bruger sorteringskommando i Linux.

1. Først opretter vi en tekstfil (tecmint.txt) for at udføre 'sorter' kommandoeksempler. Vores arbejdsmappe er ‘/ home/$ USER/Desktop/tecmint.

Indstillingen '-e' i nedenstående kommando muliggør fortolkning af tilbageslag og/n fortæller ekko at skrive hver streng til en ny linje.

$ echo -e "computer\nmouse\nLAPTOP\ndata\nRedHat\nlaptop\ndebian\nlaptop" > tecmint.txt

2. Før vi starter med 'sorter', kan vi se på indholdet af filen og hvordan den ser ud.

$ cat tecmint.txt

3. Sorter nu indholdet af filen ved hjælp af følgende kommando.

$ sort tecmint.txt

Bemærk: Ovenstående kommando sorterer faktisk ikke indholdet af tekstfilen, men viser kun det sorterede output på terminalen.

4. Sorter indholdet af filen 'tecmint.txt', og skriv det til en fil kaldet (sorted.txt), og bekræft indholdet ved hjælp af cat-kommandoen.

$ sort tecmint.txt > sorted.txt
$ cat sorted.txt

5. Sorter nu indholdet af tekstfilen 'tecmint.txt' i omvendt rækkefølge ved hjælp af '-r' switch og omdirigerer output til en fil 'reversesorted.txt'. Kontroller også indholdslisten for den nyoprettede fil.

$ sort -r tecmint.txt > reversesorted.txt
$ cat reversesorted.txt

6. Vi skal oprette en ny fil (lsl.txt) på samme sted for detaljerede eksempler og udfylde den ved hjælp af output af 'ls -l' til din hjemmekatalog.

$ ls -l /home/$USER > /home/$USER/Desktop/tecmint/lsl.txt
$ cat lsl.txt

Nu vises eksempler til sortering af indholdet på basis af et andet felt og ikke standardindledende tegn.

7. Sorter indholdet af filen 'lsl.txt' på basis af 2. kolonne (som repræsenterer antallet af symbolske links).

$ sort -nk2 lsl.txt

Bemærk: '-n' i ovenstående eksempel sorterer indholdet numerisk. Valgmulighed ‘-n’ skal bruges, når vi ville sortere en fil på basis af en kolonne, der indeholder numeriske værdier.

8. Sorter indholdet af filen 'lsl.txt' på basis af 9. kolonne (som er navnet på filerne og mapperne og ikke-numerisk).

$ sort -k9 lsl.txt

9. Det er ikke altid vigtigt at køre sorteringskommando på en fil. Vi kan pipeline det direkte på terminalen med faktisk kommando.

$ ls -l /home/$USER | sort -nk5

10. Sorter og fjern dubletter fra tekstfilen tecmint.txt. Kontroller, om duplikatet er fjernet eller ej.

$ cat tecmint.txt
$ sort -u tecmint.txt

Regler indtil videre (hvad vi har observeret):

  1. Linjer, der starter med tal, foretrækkes på listen og ligger øverst, indtil andet er angivet (-r).
  2. Linjer, der starter med små bogstaver, foretrækkes på listen og ligger øverst, indtil andet er angivet (-r).
  3. Indholdet er angivet på baggrund af forekomst af alfabeter i ordbogen, indtil andet er angivet (-r).
  4. Sorter kommando som standard, behandl hver linje som streng, og sorter den derefter afhængigt af ordbogens forekomst af alfabeter (Numerisk foretrukket; se regel - 1) indtil andet er angivet.

11. Opret en tredje fil 'lsla.txt' på den aktuelle placering og udfyld den med output af 'ls -lA' kommando.

$ ls -lA /home/$USER > /home/$USER/Desktop/tecmint/lsla.txt
$ cat lsla.txt

Dem, der har forståelse for 'ls' -kommandoen, ved, at 'ls -lA' = 'ls -l' + Skjulte filer. Så det meste af indholdet på disse to filer ville være det samme.

12. Sorter indholdet af to filer på standardoutput på én gang.

$ sort lsl.txt lsla.txt

Bemærk gentagelse af filer og mapper.

13. Nu kan vi se, hvordan man sorterer, fletter og fjerner duplikater fra disse to filer.

$ sort -u lsl.txt lsla.txt

Bemærk, at duplikater er udeladt fra output. Du kan også skrive output til en ny fil ved at omdirigere output til en fil.

14. Vi kan også sortere indholdet af en fil eller output baseret på mere end en kolonne. Sorter output af kommandoen ‘ls -l’ på basis af felt 2,5 (numerisk) og 9 (ikke-numerisk).

$ ls -l /home/$USER | sort -t "," -nk2,5 -k9

Det er alt for nu. I den næste artikel vil vi dække et par flere eksempler på 'sorter' kommando i detaljer til dig. Indtil da hold dig opdateret og tilsluttet Tecmint. Fortsæt med at dele. Fortsæt med at kommentere. Synes godt om og del os og hjælp os med at blive spredt.

Læs også: 7 Interessante Linux 'sorter' kommandoeksempler - del 2