Pe Linux, puteți găsi mai multe comenzi cu funcționalități neobișnuite. O astfel de comandă este seq, care generează o secvență de numere în funcție de argumentele specificate.

Dar ce poți face cu un utilitar din linia de comandă care îți aruncă o grămadă de cifre? Veți afla în acest ghid.

Ce este comanda seq?

După cum sa menționat mai sus, comanda seq din Linux generează rapid o succesiune de caractere numerice. Utilizatorii pot transmite argumente comenzii pentru a genera diferite combinații de numere. De exemplu, puteți obține o listă incrementată prin simpla trecere a unui argument suplimentar la sec.

Care este totuși utilizarea practică a comenzii? În timp ce seq poate să nu pară un instrument puternic în întregime, puteți beneficia de comandă implementându-l cu alte utilitare Linux. De asemenea, puteți utiliza seq in scripturi bash să dezvăluie adevărata sa putere.

Cum se folosește seq în Linux

Seq acceptă doar câteva argumente, ceea ce îl face un instrument ușor de învățat pentru oricine.

instagram viewer

Sintaxa de bază

Sintaxa de bază a comenzii este:

numere de opțiuni seq

...Unde Opțiuni sunt steagurile pe care le puteți specifica pentru a invoca diferite metode ale comenzii și numere sunt argumentele pe care le treci pentru a genera succesiunea numerică.

Generați o listă de numere

Argumentele secvențiale urmează formatul de intrare dat mai jos:

seq ultima
seq primul ultimul
seq primul increment ultimul

Când specificați doar un număr, seq îl interpretează ca limită superioară pentru listă și generează o secvență începând de la unul până la numărul specificat.

sec. 5

Comanda menționată mai sus va genera următoarele:

1
2
3
4
5

Când seq primește două numere ca intrare, le interpretează ca limită inferioară și limită superioară pentru secvență. Pentru a genera o listă de numere de la patru la opt:

sec. 4 8

Ieșire:

4
5
6
7
8

Dar când treceți trei numere la comandă, aceasta interpretează al doilea argument ca număr de creștere. De exemplu:

sec. 3 2 13

Comanda menționată mai sus va afișa o listă de numere începând de la trei până la 13 cu o creștere de două.

3
5
7
9
11
13

Adăugați un separator între numere

În mod implicit, seq folosește un caracter newline ca separator pentru listă. Acesta este motivul pentru care fiecare număr din listă se află pe o linie separată.

Puteți schimba acest comportament implicit și puteți utiliza un separator personalizat folosind -s steag. Pentru a utiliza Perioadă (.) caracter ca separator:

sec. -s. 3 7

Ieșire:

3.4.5.6.7

Rețineți că unele personaje ca Tilde (~) trebuie inclus în ghilimele. Acest lucru se datorează faptului că terminalul utilizează Tilde caracter pentru a desemna /home director și acest lucru s-ar reflecta în rezultat dacă nu adăugați ghilimele.

seq -s ~ 3 7

Ieșire:

3 / acasă / 4 / acasă / 5 / acasă / 6 / acasă / 7

Pe de altă parte, când înfășurați separatorul cu ghilimele:

seq -s '~' 3 7

Ieșire:

3~4~5~6~7

Modificați formatul de ieșire

De asemenea, puteți modifica formatul pentru secvența de ieșire folosind -f steag. În mod implicit, seq extrage stilul formatului din intrarea utilizatorului. De exemplu, dacă specificați numerele 0,1 și 0,5, ieșirea implicită va avea un format de număr în virgulă mobilă.

sec 0,1 0,5

Ieșire:

0.1
0.2
0.3
0.4
0.5

Puteți specifica un format de ieșire personalizat utilizând diversele specificații de conversie, cum ar fi% a,% e,% f,% g,% A,% E,% F și% G.

Puteți utiliza % f dacă doriți ca ieșirea să urmeze un format de număr în virgulă mobilă.

seq-f% f 4 7

Ieșire:

4.000000
5.000000
6.000000
7.000000

Pentru a modifica precizia până la două puncte zecimale:

seq -f% 0.2f 4 7

Ieșire:

4.00
5.00
6.00
7.00

De asemenea, puteți transforma complet ieșirea specificând un șablon de ieșire. De exemplu, pentru a obține o listă cu toate adresele IP care încep cu 192.168.5.x:

sec. -f 192.168.5.% g 1 233

Ieșire:

Pentru a adăuga padding la ieșire, puteți utiliza -w steag. -w steagul menține lățimea ieșirii în conformitate cu cel mai mare număr specificat.

Pentru a genera o secvență de numere între unu și 1.000 cu o creștere de 100, menținând în același timp o lățime constantă:

sec. -w 1 100 1000

Ieșire:

0001
0101
0201
0301
0401
0501
0601
0701
0801
0901

Obțineți secțiunea Ajutor linie de comandă

În timp ce secvența este ușor de utilizat, uneori utilizatorii ar putea simți nevoia verificați pagina manuală pentru comandă. --Ajutor pavilion va afișa pagina manuală seq:

seq --help

Ieșire:

Exemple practice

După cum sa menționat deja, seq este utilizat în principal cu alte comenzi Linux, de exemplu, touch și expr.

Efectuați operații matematice

Dacă doriți să adăugați sau să scăpați rapid o anumită gamă de numere, puteți face acest lucru cu ușurință utilizând secțiunea din interior expr, care este o comandă Linux care tratează intrarea ca o expresie și afișează ieșirea corespunzătoare.

Pentru a adăuga toate numerele între unu și 100:

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

Comanda seq generează o ieșire după cum urmează:

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

Expr o tratează ca o expresie de intrare și scoate soluția.

5050

Puteți efectua alte operații matematice prin simpla înlocuire a separatorului din comanda seq cu alți operatori.

Creați rapid mai multe fișiere

Dacă doriți să creați mai multe fișiere pe Linux ale căror nume urmează un model similar, puteți face acest lucru cu ușurință folosind comanda tactilă și urm.

De exemplu, pentru a crea 10 fișiere cu numele fișier-x.txt, Unde X este un număr de la unu la 10:

atinge $ (seq -f "fișier% g.txt" 1 10)

Touch va crea fișierele pentru dvs. într-o clipită.

Implementarea secvenței în Scripturi

Luați în considerare că scrieți un instrument de scanare în rețea precum Nmap în bash, poate doriți să obțineți o listă cu toate porturile deschise dintr-o rețea. Dar pentru asta, trebuie să faceți ping la fiecare port (65535 în total) și să analizați răspunsul.

Pentru a economisi ceva timp, puteți alege să utilizați secvența și să generați o listă de adrese IP și combinații de porturi pe care să le puteți utiliza în script.

Să presupunem că doriți să obțineți lista tuturor porturilor unui dispozitiv cu adresa IP 1.2.3.4. Iată o comandă rapidă pentru a genera ieșirea dorită:

sec. -f 1.2.3.4:%g 1 65535

Ieșire:

Puteți utiliza apoi această ieșire ca listă și o puteți parcurge, verificând fiecare port folosind scriptul și analizând dacă este deschis sau nu.

Cât de rapid generează numerele seq?

S-ar putea să vă gândiți dacă puteți obține rezultate similare folosind o buclă for în bash, de ce să alegeți secțiunea pentru sarcină? Acest lucru se datorează faptului că puterea reală a seq rezidă în viteza sa. Seq este mai rapid decât orice altă comandă care generează o succesiune de numere pe Linux.

Puteți chiar să-i testați viteza folosind utilitarul timp pe Linux. Să vedem cât timp durează pentru a genera o listă de un milion de numere începând de la unul.

timp sec 1000000

Privind rezultatul de mai jos, puteți vedea că a durat doar câteva secunde aproximativ patru secunde pentru a genera o listă de un milion de numere.

Puterea liniei de comandă Linux

Seq nu este singurul instrument din Linux care se concentrează foarte mult pe furnizarea de rezultate rapide și precise. În timp ce puteți genera o listă de numere folosind o buclă pentru bash, nu este o practică recomandată, având în vedere cât de rapid este secvența rapidă.

Linia de comandă Linux vă oferă mai mult control asupra sistemului de operare și a funcționalităților sale, motiv pentru care ar trebui să începeți să utilizați terminalul prin GUI astăzi.

E-mail
5 motive pentru a alege terminalul Linux peste GUI

Linia de comandă Linux are un teren ridicat când vine vorba de performanță, control și ușurință în utilizare.

Citiți în continuare

Subiecte asemănătoare
  • Linux
Despre autor
Deepesh Sharma (65 articole publicate)

Deepesh este Junior Editor pentru Linux la MUO. Scrie conținut informațional pe internet de peste 3 ani. În timpul liber, îi place să scrie, să asculte muzică și să cânte la chitară.

Mai multe de la Deepesh Sharma

Aboneaza-te la newsletter-ul nostru

Alăturați-vă newsletterului pentru sfaturi tehnice, recenzii, cărți electronice gratuite și oferte exclusive!

Încă un pas…!

Vă rugăm să confirmați adresa de e-mail în e-mailul pe care tocmai vi l-am trimis.

.