14 Nyttige eksempler på Linux 'sort' kommando - del 1


'Sort'-kommandoen er et Linux-program som brukes til å skrive ut linjer med tekstfiler og sammenkobling av alle filer i sortert rekkefølge. Sorter kommandoen tar tomrom som feltseparator og hele inndatafilen som sorteringsnøkkel. Det er viktig å legge merke til at sorteringskommandoen faktisk ikke sorterer filene, men bare skriver ut den sorterte utgangen til du omdirigerer utdataene.

Denne artikkelen tar sikte på en dyp innsikt i Linux 'sort'-kommandoen med 14 nyttige praktiske eksempler som viser deg hvordan du bruker sorteringskommandoen i Linux.

1. Opprette en tekstfil med spesifisert innhold

Først vil vi lage en tekstfil, kalt 'tecmint.txt', som vil bli brukt til å utføre 'sort' kommandoeksempler i arbeidskatalogen vår for denne oppgaven er ' /home/$USER/Desktop/tecmint'.

Alternativet '-e' i kommandoen nedenfor muliggjør tolkning av omvendt skråstrek og /n forteller echo-kommandoen å skrive hver streng til en ny linje.

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

2. Vis filinnhold

Før vi begynner med «sort»-kommandoen, la oss ta en titt på innholdet i filen og hvordan den ser ut ved å bruke følgende cat-kommando.

cat tecmint.txt

3. Sortering av filinnhold

Kommandoen «sort tecmint.txt» brukes til å omorganisere linjene i filen i stigende alfabetisk rekkefølge, hvis det er noen dupliserte linjer, vil den beholde en kopi av hver unike linje.

sort tecmint.txt

Merk: Kommandoen ovenfor sorterer ikke innholdet i tekstfilen, men viser bare den sorterte utgangen på terminalen.

4. Omdirigere sortert utdata til ny fil

Følgende kommando brukes til å sortere linjene i tekstfilen «tecmint.txt» i alfabetisk rekkefølge og omdirigerer deretter den sorterte utdata til en ny fil kalt «sorted.txt “, som betyr at den opprinnelige filen forblir uendret, og det sorterte innholdet lagres i en egen fil.

For å bekrefte innholdet, bruk cat-kommandoen.

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

5. Sortering av filinnhold i omvendt rekkefølge

Følgende kommando brukes til å sortere linjene i tekstfilen «tecmint.txt» i omvendt rekkefølge, noe som betyr at den vil ordne linjene i synkende alfabetisk rekkefølge og den sorterte utdata blir deretter omdirigert til en ny fil med navnet «reversesorted.txt»

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

6. Lagre liste over filer og kataloger

Følgende kommando brukes til å liste innholdet i brukerens hjemmekatalog ("/home/$USER") i en detaljert visning i langt format ved å bruke ls-kommandoen, og deretter omdirigerer den denne katalogoppføringen til en tekstfil med navnet «lsl.txt» som ligger på brukerens skrivebord, spesielt i «tecmint»-katalogen.

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

Nå skal vi utforske eksempler på sortering av innholdet basert på andre felt enn standard innledende tegn.

7. Sortering av 'Filinnhold basert på det andre feltet

Følgende kommando brukes til å sortere innholdet i filen «lsl.txt» basert på verdiene i det andre feltet på hver linje. Alternativet '-n' indikerer en numerisk sortering, og behandler det andre feltet som tall i stedet for tekst.

Alternativet '-k2' spesifiserer at vi ønsker å sortere basert på det andre feltet. Ved å utføre denne kommandoen får du en sortert liste over linjene i "lsl.txt", med sorteringskriteriene som de numeriske verdiene i det andre feltet på hver linje.

sort -nk2 lsl.txt

8. Sortering av filinnhold basert på det niende feltet

Følgende kommando brukes til å sortere linjene i filen «lsl.txt» basert på verdiene i det niende feltet på hver linje i stigende rekkefølge. Alternativet '-k9' spesifiserer at sorteringen skal gjøres basert på det niende feltet.

sort -k9 lsl.txt

9. Sorter filer etter filstørrelse

Følgende kommando kombinerer kommandoene 'ls' og 'sort' for å liste innholdet i brukerens hjemmekatalog i et format med lang oppføring, og deretter overfører den katalogoppføringen til 'sort -nk5', som sorterer listen basert på verdiene i den femte kolonnen, som representerer filstørrelser.

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

10. Fjerne dupliserte linjer i filen

Følgende kommando sorterer linjene i filen «tecmint.txt» i stigende alfabetisk rekkefølge og fjerner eventuelle dupliserte linjer ved å bruke alternativet '-u', som står for «unique», og det sikrer at unike linjer beholdes i den sorterte utgangen.

cat tecmint.txt
sort -u tecmint.txt

Regler så langt (det vi har observert):

  • Linjer som begynner med tall foretrekkes i listen og ligger øverst inntil annet er spesifisert (-r).
  • Linjer som starter med små bokstaver foretrekkes i listen og ligger øverst inntil annet er spesifisert (-r).
  • Innholdet er oppført basert på forekomsten av alfabeter i ordboken inntil annet er spesifisert (-r).
  • Sorteringskommando behandler som standard hver linje som en streng og sorterer den deretter avhengig av ordbokforekomst av alfabeter (numerisk foretrukket; se regel – 1) inntil annet er spesifisert.

11. Omdirigere katalogoppføring til fil

Følgende kommando viser innholdet i brukerens hjemmekatalog i langt format, inkludert skjulte filer og kataloger, og deretter omdirigerer den katalogoppføringen til en tekstfil kalt «lsla.txt» som ligger på brukerens skrivebord i «tecmint»-katalogen.

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

De som er kjent med ls-kommandoen forstår at 'ls -lA' tilsvarer 'ls -l' pluss skjulte filer. Som et resultat vil majoriteten av innholdet i disse to kommandoene være det samme.

12. Sortering av innhold i filer

Følgende kommando sorterer innholdet i to tekstfiler, 'lsl.txt' og 'lsla.txt', i stigende alfabetisk rekkefølge og kombinerer og viser deretter det sorterte innholdet i terminalen.

sort lsl.txt lsla.txt

Legg merke til repetisjonen av filer og mapper.

13. Fjerne dupliserte linjer i filen

Følgende kommando slår sammen og sorterer innholdet i to tekstfiler, 'lsl.txt' og 'lsla.txt', i stigende alfabetisk rekkefølge mens du fjerner dupliserte linjer ved å bruke '-u'-alternativet, som sikrer at unike linjer beholdes i den sorterte utgangen.

sort -u lsl.txt lsla.txt

Legg merke til at duplikater er utelatt fra utdataene. I tillegg kan du lagre utdataene til en ny fil ved å omdirigere den.

14. Sortering av utdata etter flere felt ved hjelp av egendefinert skilletegn

Følgende kommando kombinerer kommandoene 'ls' og 'sort' for å vise innholdet i brukerens hjemmekatalog i langt format, og deretter overfører den katalogoppføringen til 'sort' kommando, som sorterer utdata basert på spesifikke kolonner og felt.

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

Her er en oversikt over kommandoen:

  • -t "," – spesifiserer at et komma (",") brukes som feltskilletegn.
  • -nk2,5 – indikerer sortering etter en numerisk verdi i kolonne 2 til 5, som vanligvis representerer tillatelser og eierskapsdetaljer.
  • -k9 – sorterer resultatet ytterligere basert på den niende kolonnen, som representerer filstørrelser.

Det er alt for nå. I den neste artikkelen vil vi fordype oss i mer detaljerte eksempler på sorteringskommandoen for deg.

Fortsett å dele, kommentere, like og hjelpe oss å nå et bredere publikum.