V systéme Linux nájdete niekoľko príkazov s neobvyklými funkciami. Jedným z takýchto príkazov je seq, ktorý vydáva postupnosť čísel v závislosti od zadaných argumentov.

Čo však môžete urobiť s nástrojom príkazového riadku, ktorý na vás vyhodí veľa číslic? Dozviete sa v tejto príručke.

Čo je príkaz seq?

Ako už bolo spomenuté vyššie, príkaz seq v systéme Linux rýchlo vygeneruje postupnosť číselných znakov. Používatelia môžu do príkazu vložiť argumenty na vygenerovanie rôznych kombinácií čísel. Napríklad môžete získať zväčšený zoznam jednoduchým odovzdaním dodatočného argumentu sekv.

Aké je praktické použitie príkazu? Aj keď sa seq nemusí javiť ako mocný nástroj v celom rozsahu, môžete využiť príkaz pomocou implementácie s inými pomocnými programami Linux. Môžete tiež použiť seq v bash skripty odhaliť jeho skutočnú moc.

Ako používať seq v Linuxe

Seq trvá iba niekoľko argumentov, čo z neho robí ľahko naučiteľný nástroj pre kohokoľvek.

Základná syntax

Základná syntax príkazu je:

čísla možností seq
instagram viewer

...kde možnosti sú príznaky, ktoré môžete určiť na vyvolanie rôznych metód príkazu a čísla sú argumenty, ktoré odovzdáte na vygenerovanie číselnej postupnosti.

Vytvorte zoznam čísel

Argumenty Seq sa riadia vstupným formátom uvedeným nižšie:

nasl. posledný
seq prvý posledný
seq prvý prírastok posledný

Ak zadáte iba jedno číslo, seq ho interpretuje ako hornú hranicu zoznamu a vygeneruje postupnosť od jedného do zadaného čísla.

seq 5

Vyššie uvedený príkaz vygeneruje nasledovné:

1
2
3
4
5

Keď seq dostane ako vstup dve čísla, interpretuje ich ako dolnú a hornú hranicu postupnosti. Generovanie zoznamu čísel od štyroch do ôsmich:

seq 4 8

Výkon:

4
5
6
7
8

Ale keď príkazu odovzdáte tri čísla, interpretuje sa druhý argument ako prírastkové číslo. Napríklad:

nasl. 3 2 13

Vyššie uvedený príkaz vydá zoznam čísel začínajúcich od troch do 13 s prírastkom dvoch.

3
5
7
9
11
13

Pridajte oddeľovač medzi číslami

Predvolene seq používa ako oddeľovač zoznamu znak nového riadku. To je dôvod, prečo je každé číslo v zozname na samostatnom riadku.

Toto predvolené správanie môžete zmeniť a použiť vlastný oddeľovač pomocou znaku -s vlajka. Ak chcete použiť Obdobie (.) znak ako oddeľovač:

nasl. 3 7

Výkon:

3.4.5.6.7

Majte na pamäti, že niektoré postavy majú rady Tilda (~) musia byť súčasťou úvodzoviek. Je to tak preto, lebo terminál používa Tilda znak na označenie /home adresár, a to sa odrazí na výstupe, ak nepridáte úvodzovky.

seq -s ~ 3 7

Výkon:

3 / doma / 4 / doma / 5 / doma / 6 / doma / 7

Na druhej strane, keď zalomíte oddeľovač úvodzovkami:

seq -s '~' 3 7

Výkon:

3~4~5~6~7

Upravte výstupný formát

Formát výstupnej sekvencie môžete zmeniť aj pomocou klávesu -f vlajka. Predvolene seq extrahuje štýl formátu zo vstupu používateľa. Napríklad ak zadáte čísla 0,1 a 0,5, predvolený výstup bude mať formát čísla s pohyblivou rádovou čiarkou.

0,1 0,1 0,5

Výkon:

0.1
0.2
0.3
0.4
0.5

Vlastný výstupný formát môžete určiť pomocou rôznych špecifikácií prevodu, ako sú% a,% e,% f,% g,% A,% E,% F a% G.

Môžete použiť % f špecifikátor, ak chcete, aby výstup zodpovedal formátu čísla s pohyblivou rádovou čiarkou.

seq-f% f 4 7

Výkon:

4.000000
5.000000
6.000000
7.000000

Úprava presnosti až na dve desatinné čiarky:

seq -f% 0,2f 4 7

Výkon:

4.00
5.00
6.00
7.00

Výstup môžete tiež úplne transformovať zadaním výstupnej šablóny. Napríklad na získanie zoznamu všetkých adries IP, ktoré začínajú 192.168.5.x:

sekv. -f 192,168,5% g 1 233

Výkon:

Ak chcete do výstupu pridať polstrovanie, môžete použiť -w vlajka. The -w príznak zachováva šírku výstupu v súlade s najväčším zadaným počtom.

Postup vygenerovania postupnosti čísel od 1 do 1 000 s prírastkom 100 pri zachovaní konštantnej šírky:

seq -w 1 100 1000

Výkon:

0001
0101
0201
0301
0401
0501
0601
0701
0801
0901

Získajte ďalšiu pomoc s príkazovým riadkom

Aj keď je seq ľahko použiteľný, niekedy môžu používatelia cítiť, že je to potrebné skontrolujte príkaz na manuálnej stránke. The --Pomoc príznak zobrazí nasledujúcu manuálovú stránku:

seq - pomoc

Výkon:

Praktické príklady

Ako už bolo spomenuté, seq sa primárne používa s inými príkazmi Linuxu, napríklad touch a expr.

Vykonajte matematické operácie

Ak chcete rýchlo sčítať alebo odčítať konkrétny rozsah čísel, môžete to urobiť jednoducho pomocou seq vo vnútri expr, čo je príkaz Linuxu, ktorý zaobchádza so vstupom ako s výrazom a zobrazuje zodpovedajúci výstup.

Ak chcete pridať všetky čísla od jednej do 100, postupujte takto:

expr `(seq -s" + "1 100)`

Príkaz seq vygeneruje výstup nasledovne:

1 + 2 + 3 + 4 + 5 + 6...

Expr to považuje za vstupný výraz a vydáva riešenie.

5050

Ďalšie matematické operácie môžete vykonať jednoduchým nahradením oddeľovača v príkaze seq inými operátormi.

Rýchlo vytvorte viac súborov

Ak chcete v systéme Linux vytvoriť viac súborov, ktorých názvy majú podobný vzorec, môžete to ľahko urobiť pomocou dotykový príkaz a nasl.

Napríklad na vytvorenie 10 súborov s názvom súbor-x.txt, kde X je číslo od jedna do 10:

dotknite sa $ (seq -f "súbor% g.txt" 1 10)

Dotykom za vás bleskovo vytvoríte súbory.

Implementácia seq v skriptoch

Zvážte, že píšete a sieťový skener ako Nmap v bashe možno budete chcieť získať zoznam všetkých otvorených portov v sieti. Ale na to musíte otestovať príkaz ping na každý port (celkom 65 535) a analyzovať odpoveď.

Ak chcete ušetriť čas, môžete zvoliť použitie seq a vygenerovať zoznam adries IP a kombinácií portov, ktoré môžete použiť vo svojom skripte.

Predpokladajme, že chcete získať zoznam všetkých portov zariadenia s adresou IP 1.2.3.4. Tu je rýchly príkaz na vygenerovanie požadovaného výstupu:

seq -f 1.2.3.4:%g 1 65535

Výkon:

Tento výstup potom môžete použiť ako zoznam a prechádzať ním, skontrolovať každý port pomocou skriptu a analyzovať, či je otvorený alebo nie.

Ako rýchlo seq generuje čísla?

Možno si myslíte, že ak môžete dosiahnuť podobné výsledky pomocou cyklu for v bash, prečo si pre úlohu zvoliť seq? Je to tak preto, lebo skutočná sila sekvencií spočíva v ich rýchlosti. Seq je rýchlejší ako akýkoľvek iný príkaz, ktorý generuje postupnosť čísel v systéme Linux.

Jeho rýchlosť môžete dokonca otestovať pomocou nástroja pre čas v systéme Linux. Pozrime sa, koľko času trvá seq, kým sa vygeneruje zoznam jedného milióna čísel začínajúcich od jedného.

časové obdobie 10 000 000

Pri pohľade na výstup nižšie môžete vidieť, že vygenerovanie zoznamu jedného milióna čísel trvalo iba štyri sekundy.

Sila príkazového riadku systému Linux

Seq nie je jediným nástrojom v systéme Linux, ktorý sa výrazne zameriava na poskytovanie rýchlych a presných výsledkov. Aj keď môžete vygenerovať zoznam čísel pomocou a pre slučku v bash, nie je to odporúčaný postup vzhľadom na to, aké skutočne rýchle sú sekundy.

Príkazový riadok Linuxu vám dáva väčšiu kontrolu nad operačným systémom a jeho funkciami, čo je tiež dôvod, prečo by ste dnes mali začať používať terminál cez GUI.

Email
5 dôvodov prečo si zvoliť Linuxový terminál cez GUI

Príkazový riadok Linuxu má vysoké postavenie, pokiaľ ide o výkon, ovládanie a jednoduché použitie.

Prečítajte si Ďalej

Súvisiace témy
  • Linux
O autorovi
Deepesh Sharma (Publikovaných 65 článkov)

Deepesh je juniorský editor pre Linux na MUO. Píše informačný obsah na internete už viac ako 3 roky. Vo voľnom čase rád píše, počúva hudbu a hrá na gitare.

Viac od Deepesh Sharma

Prihlásiť sa ku odberu noviniek

Pripojte sa k nášmu bulletinu s technickými tipmi, recenziami, bezplatnými elektronickými knihami a exkluzívnymi ponukami!

Ešte jeden krok…!

V e-maile, ktorý sme vám práve poslali, potvrďte svoju e-mailovú adresu.

.