7 Interessante Linux 'sort' kommandoeksempler - Del 2


I vår forrige artikkel dekket vi forskjellige eksempler på kommandoen «sort». Hvis du gikk glipp av det, kan du følge med på lenken nedenfor. I dette innlegget vil vi fortsette fra der vi slapp i forrige artikkel, for å dekke de resterende aspektene av kommandoen. På denne måten vil begge artiklene sammen tjene som en omfattende guide til Linux 'sort'-kommandoen.

Før vi fortsetter, vennligst opprett en tekstfil med navnet «month.txt» og fyll den med dataene nedenfor.

echo -e "mar\ndec\noct\nsep\nfeb\naug" > month.txt
cat month.txt

15. Sortering av filinnhold etter måned

Følgende kommando sorterer innholdet i filen «month.txt» i kronologisk rekkefølge basert på månedens forkortelse eller navn ved å bruke '-M'-alternativet som instruerer 'sort'-kommandoen for å behandle dataene som datoer og sortere dem deretter.

sort -M month.txt

16. Sortering av utdata etter filstørrelse i menneskelig lesbart format

Følgende kommando kombinerer «ls»- og «sort»-kommandoene for å utføre to oppgaver. Først viser den innholdet i brukerens hjemmekatalog i langt format, og deretter overfører den denne katalogoppføringen til 'sort'-kommandoen for å skrive ut filstørrelser i et menneskelesbart format, noe som gjør det lettere å identifisere de største og minste filene i katalogen.

ls -l /home/$USER | sort -h -k5

17. Sjekke sorterte filer for konsistens

I den forrige artikkelen genererte vi to tekstfiler: 'sorted.txt' i eksempel nummer 4 og 'lsl.txt' i eksempel nummer 6. Vi er klar over at ' sorted.txt' er allerede sortert, mens 'lsl.txt' ikke er det.

For å bekrefte sorteringsstatusen til begge filene bruker vi kommandoen sort, som lar oss bekrefte om sorted.txt forblir i riktig rekkefølge og om «lsl.txt» krever sortering.

sort -c sorted.txt

Hvis den returnerer 0, betyr det at filen er sortert og det er ingen konflikt.

sort -c lsl.txt

18. Håndtering av skilletegn når du ikke bruker mellomrom i filen

Hvis skilletegn (skilletegn) mellom ord er et mellomrom, tolker kommandoen «sort» automatisk alt etter et horisontalt mellomrom som et nytt ord. Men hva skjer når skilletegnet ikke er et mellomrom?

Tenk på en tekstfil hvis innhold er atskilt med noe annet enn mellomrom, for eksempel '|' eller '\' eller '+' eller '.' eller ...

Lag en tekstfil der innholdet er atskilt med +. Bruk cat-kommandoen for å sjekke innholdet i filen.

echo -e "21+linux+server+production\n11+debian+RedHat+CentOS\n131+Apache+Mysql+PHP\n7+Shell Scripting+python+perl\n111+postfix+exim+sendmail" > delimiter.txt
cat delimiter.txt

Sorter nå denne filen basert på første-feltet som er numerisk.

sort -t '+' -nk1 delimiter.txt

Det andre er basert på fjerde felt som er ikke-numerisk.

Hvis skilletegnet er Tab, kan du bruke $'\t' i stedet for '+', som vist i eksemplet ovenfor.

19. Tilfeldig sortering av utdata etter filstørrelse

Sorter utdataene fra ls -l-kommandoen for hjemmekatalogen din basert på den femte kolonnen, som representerer 'datamengden', i tilfeldig rekkefølge.

ls -l /home/avi/ | sort -k5 -R 

Hver gang du kjører skriptet ovenfor vil du sannsynligvis få et annet resultat siden resultatet genereres tilfeldig.

Som klart fra Regelnummer – 2 fra forrige artikkel, foretrekker sort-kommandoen linjer som starter med små bokstaver fremfor store tegn. Sjekk også eksempel 3 i den siste artikkelen, der strengen «laptop» vises før strengen «LAPTOP».

20. Overstyre standard sorteringsinnstillinger

Hvordan overstyre standard sorteringspreferanse? Før vi kan overstyre standard sorteringspreferanse, må vi eksportere miljøvariabelen 'LC_ALL' til 'C'.

For å gjøre dette, kjør koden nedenfor i kommandolinjen.

export LC_ALL=C

Og sorter deretter tekstfilen «tecmint.txt» og overstyrer standard sorteringspreferanse.

sort tecmint.txt

Ikke glem å sammenligne resultatet med det du oppnådde i eksempel 3, og du kan også bruke alternativet '-f' aka '--ignorer- case' for å få mye organisert utgang.

sort -f tecmint.txt

21. Kombinere to inngangsfiler i en enkelt operasjon

Hva med å kjøre «sort» på to inndatafiler og slå dem sammen på én gang?

La oss lage to tekstfiler, nemlig «fil1.txt» og «fil2.txt», og fylle dem med noen data. I «file1.txt» legger vi til tall som vist nedenfor. Vi bruker også cat-kommandoen for å inspisere filens innhold

echo -e “5 Reliable\n2 Fast\n3 Secure\n1 open-source\n4 customizable” > file1.txt
cat file1.txt

Og fyll ut den andre filen «fil2.txt» med noen data som.

echo -e “3 RedHat\n1 Debian\n5 Ubuntu\n2 Kali\n4 Fedora” > file2.txt
cat file2.txt

Sorter og slå sammen utdataene fra begge filene.

join <(sort -n file1.txt) <(sort file2.txt)

Konklusjon

Avslutningsvis har denne artikkelen utforsket ulike aspekter ved «sort»-kommandoen i Linux. Vi begynte med grunnleggende sortering etter alfabetisk rekkefølge, våget oss på numerisk og datobasert sortering, og berørte til og med tilpassede skilletegn. Vi har også lært hvordan vi kan overstyre standard sorteringspreferanser for å passe våre behov.

I tillegg diskuterte vi teknikker for å sjekke om en fil allerede er sortert og kombinere «sort»-operasjoner for flere inndatafiler. Med kunnskapen du har fått her, har du et kraftig verktøy til rådighet for å sortere og organisere data effektivt i et Linux-miljø.

Vi håper denne artikkelen har vært innsiktsfull og nyttig for dine kommandolinjeforsøk. Fortsett å utforske, lære og mestre kunsten «sort» for å forbedre Linux-ferdighetene dine.