Cum să utilizați comanda seq pe Linux

Comanda Linux seq generează liste de numere cât ai clipi. Dar cum poate fi folosită această funcționalitate în practică? Vă vom arăta cum vă poate fi util seq.

Comanda seq

La prima vedere, comanda Linux seq pare a fi ceva ciudat. Vă permite să generați succesiuni de numere repede si gata! Cuvântul cheie aici, totuși, este „rapid”. Într-o clipă, vei vedea cât de repede poate rula această mică comandă.

Oricum, indiferent de modul în care sunt generate, cât de utilă este o listă de numere? Comanda seq a fost adăugată la cea de-a 8-a ediție a Unix în 1985. A fost acolo de atunci, așa că trebuie să facă ceva util.

The filosofia Unix este că este plin de mici utilități care fac un lucru și îl fac bine. Una dintre principiile centrale ale acestei filozofii este de a scrie programe care acceptă input de la alte programe. Desigur, asta înseamnă, de asemenea, că aceste programe trebuie să genereze rezultate care pot fi folosite ca intrare de către alte programe.

Comanda seq devine proprie atunci când este utilizată cu alte comenzi care folosesc rezultatul său, fie prin conducte, fie prin extinderea liniei de comandă.

Generarea listei de bază

Dacă lansați seq cu un singur număr ca parametru de linie de comandă, se numără de la unu la acel număr. Apoi tipărește numerele în fereastra terminalului, câte un număr pe linie, după cum se arată mai jos:

seq 6

The

Dacă introduceți două numere pe linia de comandă, primul va fi numărul de început și al doilea va fi numărul de final, după cum se arată mai jos:

seq 4 10

Puteți seta o dimensiune a pasului incluzând un al treilea număr. Se află între numerele de început și de sfârșit. Introducem următoarele pentru a cere seq să creeze o listă de numere care începe cu șase, se termină la 48 și folosește un pas de șase:

seq 6 6 48

Numărând înapoi

De asemenea, putem cere seq să creeze o listă de numere de la cel mai mare la cel mai mic. Pentru a face acest lucru, totuși, trebuie să oferim un pas care este negativ.

  Cum să găsiți fișiere duplicate și să le curățați pe Linux cu FSlint

Următoarea comandă produce o listă care numără de la 24 la 12 în pași de 6, deoarece introducem pasul ca număr negativ:

seq 24 -6 12

Numărarea cu zecimale

Numerele de început, de sfârșit și de pas pot fi, de asemenea, zecimale. Dacă oricare dintre numere este zecimală, celelalte sunt, de asemenea, tratate ca zecimale. Următoarea comandă generează o listă de numere cu un pas de 0,2:

seq 1 0.2 2

Viteza secv

seq este extraordinar de rapid – singurul blocaj este timpul necesar pentru a introduce comanda în fereastra terminalului. Pentru a-i testa viteza, să cerem o listă de 250.000 de numere.

Introducem următoarele, folosind timp comandă pentru a vedea cât timp durează procesul:

time seq 250000

Rezultatele sunt afișate sub listă. Chiar și pe computerul nostru de testare cu putere moderată, seq este surprinzător de rapid.

Întreaga listă a fost creată și scrisă pe ecran în aproximativ 1/3 de secundă. Dacă redirecționăm lista într-un fișier, putem evita chiar și suprasarcina de tastare în fereastra terminalului.

Pentru a face acest lucru, introducem următoarele:

time seq 250000 > numbers.txt

time seq 250000 > numbers.txt într-o fereastră de terminal.”  width=”646″ height=”147″ onload=”pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);”  onerror=”this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);”></p>
<p>Timpul necesar pentru a finaliza lista și a crea fișierul este acum de aproximativ 1/7 de secundă.< /p> </p>
<h2 rol=Folosind un separator

Un caracter de linie nouă este caracterul implicit afișat între fiecare număr dintr-o listă. De aceea apar ca o listă verticală, cu fiecare număr pe linia lui. Dacă aveți nevoie, puteți furniza un alt separator.

De exemplu, să presupunem că trebuie să creați o listă delimitată prin virgulă, o listă împărțită prin două puncte sau orice alt semn de punctuație sau simbol. Delimitatorul este de fapt un șir, așa că puteți folosi mai mult de un caracter.

  Cum se instalează Zoiper pe Linux

Vom folosi opțiunea -s (separator). Următoarea comandă va produce o listă delimitată prin virgulă:

seq s, 6 6 36

Această comandă va folosi două puncte (:) ca separator:

seq -s: 6 6 36

Această comandă îi spune lui seq să folosească două cratime (-) ca separator:

seq -s-- 6 6 36

Utilizarea șirurilor de format

Comanda seq acceptă și Stil limbaj C șiruri de format. Acestea vă permit să formatați rezultatul cu mult mai mult control decât specificarea unui separator. Pentru a utiliza un șir de format, utilizați opțiunea -f (format).

Următoarea comandă îi spune lui seq să folosească zerouri pentru a completa rezultatul cu două caractere:

seq -f "%02g" 6

secv. -f

Putem formata șirul cu orice text dorim și plasăm numărul oriunde în șir, după cum urmează:

seq -f "Number %02g in a C-like format string" 6

secv. -f

O modalitate rapidă de a seta căptușeala zero

Cea mai rapidă modalitate de a seta umplutura zero este să utilizați opțiunea -w (lățime egală). Acest lucru îi spune lui seq să folosească zerouri pentru a completa numerele, astfel încât toate să aibă aceeași lățime cu cel mai mare număr.

Următoarea comandă numără de la 0 la 1.000 în pași de 100 și toate numerele vor fi completate cu zerouri:

seq -w 0 100 1000

Cel mai lung număr are patru caractere, așa că toate numerele mai înguste sunt completate cu zerouri la acea lățime (chiar și 0 este completat cu patru zerouri).

Conducta secv Into bc

Setând separatorul ca simbol matematic și introducând lista în comanda bc, putem evaluați numerele din acea listă.

Următoarea comandă generează o listă de numere separate prin asteriscuri

seq -s* 6

începând cu unu și terminând cu șase:

seq -s* 6 | bc

Dacă introducem acea listă în bc, aceasta evaluează lista folosind asteriscuri

seq -s+ 5

ca simboluri de înmulțire:

seq -s+ 5 | bc

Putem face acest lucru și cu alte simboluri. Comanda de mai jos folosește semnul plus (+) pentru a crea o listă în care sunt adăugate toate numerele:

Introducem următoarele pentru a-l introduce în bc și evaluăm lista: Crearea fișierelor cu seq Comanda tactilă

  Cum se instalează tema Matcha pe Linux

actualizează ștampilele de oră și dată

touch $(seq -f "file-%g.txt" 1 10)

pe dosare. Dacă fișierul nu există, atingeți îl creează. Putem folosi extinderea liniei de comandă cu touch and seq pentru a crea o colecție de fișiere cu nume tematic, dar numerotate diferit.

ls file*

Vom crea un set de 10 fișiere cu același nume de bază și un număr diferit (fișier-1.txt, fișier-2.txt și așa mai departe).  Introducem următoarele:

Apoi, introducem următoarele pentru a verifica fișierele:

atinge $(seq -f

Folosind seq în buclele Bash

#!/bin/bash

  for val in $(seq 5 0.2 6.6); do

  echo "The value is now: $val"

done

Putem folosi seq în scripturile Bash pentru a controla buclele cu zecimale.

chmod +x loop.sh

Tastați următorul text într-un editor, apoi salvați-l ca „loops.sh”:

./loop.sh

Apoi, introducem următoarele pentru a face noul nostru script executabil:

Când rulăm scriptul, contorul de bucle este tipărit în fereastra terminalului. Putem apoi tasta următoarele pentru a vedea creșterea numărului de bucle zecimale cu fiecare iterație a buclei:

Amintiți-vă că seq poate conta înapoi, de asemenea; îl poți folosi în bucle în același mod. Frumos și simplu Un lucru despre seq este că nu există prea multă curbă de învățare. Are o

racoritor de scurt

pagina de manual, dar o puteți folosi în continuare în moduri interesante.

Deoarece adesea trebuie să creăm rapid fișiere de testare cu dimensiuni realiste, folosim seq cu un șir de format. Apoi redirecționăm rezultatul pentru a crea un fișier care să conțină atâtea rânduri de date fictive câte dorim.