Il comando seq, abbreviazione di sequenza, viene utilizzato per stampare una sequenza di numeri. I numeri possono essere interi o reali (con punti decimali).
Vediamo come puoi usare questo comando con alcuni esempi.
Utilizzo del comando seq
Puoi usare seq senza opzioni per produrre sequenze di numeri in 3 diversi formati.
Stampa sequenza di numeri fino a un limite superiore
Nella forma più semplice, specifichi un limite superiore per seq e stamperà la sequenza a partire da 1 fino al limite superiore.
seq n
Ecco un esempio:
[email protected]:~$ seq 4
1
2
3
4
Sequenza di stampa tra due numeri (limite inferiore e superiore)
Puoi fornire due numeri in ordine crescente e stamperà la sequenza partendo dal numero inferiore fino a quello superiore.
seq n1 n2
Dai un'occhiata a questo esempio:
[email protected]:~$ seq 3 6
3
4
5
6
Sequenza di stampa tra un limite ma con incremento personalizzato
Finora, l'incremento nella sequenza è stato uno. Ma puoi anche definire un incremento personalizzato tra il limite inferiore e quello superiore.
seq n1 inc n2
Il valore incrementale può essere un valore intero o decimale.
[email protected]:~$ seq 3 0.5 6
3.0
3.5
4.0
4.5
5.0
5.5
6.0
Stampa una sequenza all'indietro
Un altro trucco è stampare una sequenza all'indietro. Per farlo, devi specificare un incremento negativo.
[email protected]:~$ seq 6 -1 4
6
5
4
Uno screenshot di tutti gli esempi precedenti:
Cosa succede quando metti qualcosa come 0,7? In tal caso, il limite massimo non verrà violato.
[email protected]:~$ seq 3 0.7 6
3.0
3.7
4.4
5.1
5.8
Finora, non hai utilizzato alcuna opzione con il comando seq. Vediamo e usiamo anche loro.
Sequenza di stampa con la stessa larghezza
L'opzione w
con il comando seq si usa per mantenere la stessa larghezza per i numeri stampati.
[email protected]:~$ seq -w 9 11
09
10
11
Sequenza di stampa in un formato specifico
Puoi formattare la riga di output in un formato specificato con l'opzione f
.
[email protected]:~$ seq -f '##%g##' 3 5
##3##
##4##
##5##
%g
viene utilizzato per i numeri predefiniti. %e
per visualizzare il numero in formato esponenziale e %f
in formato a virgola mobile.
Sequenza di stampa con stringa come separatore
Finora, le sequenze sono state tutte stampate verticalmente. Questo perché per impostazione predefinita, il separatore è il carattere della nuova riga. Puoi cambiarlo con l'opzione s
.
[email protected]:~$ seq -s ':' 4
1:2:3:4
Il 'prima del separatore non è necessario ma è buono per evitare brutte sorprese.
Uso pratico del comando seq
Potresti chiederti quale potrebbe essere un uso pratico di questo comando seq. Potrebbero esserci numerose situazioni in cui potresti usarlo.
Un esempio particolare che mi viene in mente è quando usi for loop in bash. Invece di specificare manualmente la sequenza nella condizione di ciclo, puoi usare il comando seq.
#!/bin/bash
for i in $(seq 4 2 18)
do
echo "Number $i"
done
Quando esegui lo script bash sopra, eseguirà il ciclo sulla sequenza data e stamperà i valori.
[email protected]:~$ bash seq.sh
Number 4
Number 6
Number 8
Number 10
Number 12
Number 14
Number 16
Number 18
Queste sono praticamente tutte le cose importanti che devi sapere sul comando seq. Se vuoi maggiori dettagli, puoi sempre usare la sua pagina man.