På Linux kan du finde flere kommandoer med usædvanlige funktioner. En sådan kommando er seq, som udsender en række af tal afhængigt af de angivne argumenter.
Men hvad kan du muligvis gøre med et kommandolinjeprogram, der kaster en masse cifre på dig? Du finder ud af det i denne vejledning.
Hvad er seq-kommandoen?
Som nævnt ovenfor genererer seq-kommandoen i Linux hurtigt en række numeriske tegn. Brugere kan videregive argumenter til kommandoen for at generere forskellige kombinationer af tal. For eksempel kan du få en inkrementeret liste ved blot at videregive et ekstra argument til seq.
Hvad er den praktiske brug af kommandoen dog? Mens seq måske ikke virker som et kraftfuldt værktøj i sin helhed, kan du drage fordel af kommandoen ved at implementere den med andre Linux-værktøjer. Du kan også bruge seq in bash-scripts at afsløre sin sande magt.
Sådan bruges seq i Linux
Seq tager kun et par argumenter, hvilket gør det til et letindlæringsværktøj for alle.
Grundlæggende syntaks
Den grundlæggende syntaks for kommandoen er:
sekv. indstillingsnumre
...hvor muligheder er de flag, som du kan angive for at påkalde forskellige metoder til kommandoen og numre er de argumenter, du videregiver for at generere den numeriske sekvens.
Generer en liste over numre
Seq argumenter følger inputformatet angivet nedenfor:
sidstnævnte
sek. først sidst
seq første trin sidste
Når du kun angiver et nummer, fortolker seq det som den øvre grænse for listen og genererer en sekvens startende fra et op til det angivne nummer.
seq 5
Den førnævnte kommando udsender følgende:
1
2
3
4
5
Når seq modtager to tal som input, fortolker det dem som den nedre grænse og øvre grænse for sekvensen. Sådan genereres en liste med tal fra fire til otte:
sekvens 4 8
Produktion:
4
5
6
7
8
Men når du sender tre tal til kommandoen, fortolker det det andet argument som trinnummeret. For eksempel:
sek. 3 2 13
Den førnævnte kommando udsender en liste med tal, der starter fra tre op til 13 med en stigning på to.
3
5
7
9
11
13
Tilføj en separator mellem numre
Som standard bruger seq et nyt linjetegn som skilletegn for listen. Dette er grunden til, at hvert nummer på listen er på en separat linje.
Du kan ændre denne standardadfærd og bruge en brugerdefineret separator ved hjælp af -s flag. At bruge Periode (.) tegn som separator:
seq -s. 3 7
Produktion:
3.4.5.6.7
Husk, at nogle tegn som Tilde (~) skal være indeholdt i tilbud. Dette skyldes, at terminalen bruger Tilde karakter til at betegne /home katalog, og det afspejles i output, hvis du ikke tilføjer citaterne.
seq -s ~ 3 7
Produktion:
3 / hjem / 4 / hjem / 5 / hjem / 6 / hjem / 7
På den anden side, når du pakker separatoren med anførselstegn:
seq -s '~' 3 7
Produktion:
3~4~5~6~7
Tilpas outputformatet
Du kan også ændre formatet for output-sekvensen ved hjælp af -f flag. Som standard udtrækker seq formatstilen fra brugerinput. Hvis du f.eks. Angiver tallene 0,1 og 0,5, har standardoutputtet et flydende nummerformat.
seq 0,1 0,5
Produktion:
0.1
0.2
0.3
0.4
0.5
Du kan angive et brugerdefineret outputformat ved hjælp af de forskellige konverteringsspecifikationer som% a,% e,% f,% g,% A,% E,% F og% G.
Du kan bruge % f specifier, hvis du vil have output til at følge et format med flydende nummer.
seq-f% f 4 7
Produktion:
4.000000
5.000000
6.000000
7.000000
For at ændre præcisionen op til to decimaler:
seq -f% 0,2f 4 7
Produktion:
4.00
5.00
6.00
7.00
Du kan også transformere output fuldstændigt ved at angive en outputskabelon. For eksempel for at få en liste over alle IP-adresser, der starter med 192.168.5.x:
seq -f 192.168.5.% g 1 233
Produktion:
For at tilføje polstring til output kan du bruge -w flag. Det -w flag opretholder bredden på output i overensstemmelse med det største specificerede antal.
Sådan genereres en række af tal mellem en og 1.000 med en forøgelse på 100, mens en konstant bredde opretholdes:
seq -w 1100 1000
Produktion:
0001
0101
0201
0301
0401
0501
0601
0701
0801
0901
Få efterfølgende kommandolinjehjælp
Mens seq er let at bruge, kan brugerne nogle gange føle behovet for det tjek manuel side for kommandoen. Det --Hjælp flag viser seq man-siden:
sek. - hjælp
Produktion:
Praktiske eksempler
Som allerede nævnt bruges seq primært med andre Linux-kommandoer, for eksempel touch og expr.
Udfør matematiske operationer
Hvis du hurtigt vil tilføje eller trække et bestemt rækkevidde af tal, kan du gøre det let ved at bruge seq inde ekspr, som er en Linux-kommando, der behandler input som et udtryk og viser den tilsvarende output.
Sådan tilføjes alle numrene mellem et og 100:
expr `(seq -s" + "1100)`
Seq-kommandoen genererer en output som følger:
1 + 2 + 3 + 4 + 5 + 6...
Expr behandler det som et inputudtryk og output løsningen.
5050
Du kan udføre andre matematiske operationer ved blot at erstatte separatoren i seq-kommandoen med andre operatorer.
Opret hurtigt flere filer
Hvis du vil oprette flere filer på Linux, hvis navne følger et lignende mønster, kan du gøre det let ved hjælp af touch-kommandoen og sekv.
For eksempel at oprette 10 filer med navnet fil-x.txt, hvor x er et tal fra en til 10:
tryk på $ (seq -f "fil% g.txt" 1 10)
Touch opretter filerne for dig med et øjeblik.
Implementering af seq i scripts
Overvej at du skriver en netværk scanner værktøj som Nmap i bash vil du muligvis få en liste over alle de åbne porte i et netværk. Men for det skal du pinge hver port (i alt 65535) og analysere svaret.
For at spare tid kan du vælge at bruge seq og generere en liste over IP-adresser og portkombinationer, som du kan bruge i dit script.
Lad os antage, at du vil hente listen over alle porte på en enhed med IP-adresse 1.2.3.4. Her er en hurtig kommando til at generere det ønskede output:
seq -f 1.2.3.4:%g 1 65535
Produktion:
Du kan derefter bruge denne output som en liste og krydse den, kontrollere hver port ved hjælp af dit script og analysere, om den er åben eller ej.
Hvor hurtigt genererer sekvensen numrene?
Du tænker måske, hvis du kan opnå lignende resultater ved hjælp af en for loop in bash, hvorfor vælge seq til opgaven? Dette skyldes, at den reelle kraft i seq ligger i dens hastighed. Seq er hurtigere end nogen anden kommando, der genererer en række af tal på Linux.
Du kan endda teste dens hastighed ved hjælp af tidsværktøjet på Linux. Lad os se, hvor lang tid det tager for seq at generere en liste med en million numre startende fra et.
tid seq 1000000
Når man ser på output nedenfor, kan man se, at det kun tog seq omkring fire sekunder at generere en liste med en million numre.
Styrken ved Linux-kommandolinjen
Seq er ikke det eneste værktøj i Linux, der fokuserer stærkt på at levere hurtige og nøjagtige resultater. Mens du kan generere en liste over numre ved hjælp af a for loop in bash, det er ikke en anbefalet praksis i betragtning af hvor lynhurtig seq virkelig er.
Linux-kommandolinjen giver dig mere kontrol over operativsystemet og dets funktionaliteter, hvilket også er en grund til, at du skal begynde at bruge terminalen over GUI i dag.
Linux-kommandolinjen har en høj grund, når det kommer til ydeevne, kontrol og brugervenlighed.
Læs Næste
- Linux
Deepesh er Junior Editor til Linux på MUO. Han har skrevet informativt indhold på internettet i over 3 år. I sin fritid nyder han at skrive, lytte til musik og spille sin guitar.
Abonner på vores nyhedsbrev
Deltag i vores nyhedsbrev for tekniske tip, anmeldelser, gratis e-bøger og eksklusive tilbud!
Et trin mere !!!
Bekræft venligst din e-mail-adresse i den e-mail, vi lige har sendt dig.