La commande seq, abréviation de séquence, est utilisée pour imprimer une séquence de nombres. Les nombres peuvent être des entiers ou des réels (avec des décimales).
Voyons comment vous pouvez utiliser cette commande avec quelques exemples.
Utilisation de la commande seq
Vous pouvez utiliser seq sans options pour produire une séquence de nombres dans 3 formats différents.
Imprimer une séquence de nombres jusqu'à une limite supérieure
Dans la forme la plus simple, vous spécifiez une limite supérieure à seq et il imprimera la séquence commençant à partir de 1 jusqu'à la limite supérieure.
seq n
Voici un exemple :
[email protected]:~$ seq 4
1
2
3
4
Imprimer la séquence entre deux nombres (limite inférieure et supérieure)
Vous pouvez fournir deux numéros dans l'ordre croissant et il imprimera la séquence en commençant par le numéro inférieur jusqu'au numéro supérieur.
seq n1 n2
Regardez cet exemple :
[email protected]:~$ seq 3 6
3
4
5
6
Séquence d'impression entre une limite mais avec un incrément personnalisé
Jusqu'à présent, l'incrément dans la séquence a été de un. Mais vous pouvez également définir un incrément personnalisé entre la limite inférieure et supérieure.
seq n1 inc n2
La valeur incrémentielle peut être un entier ou une valeur décimale.
[email protected]:~$ seq 3 0.5 6
3.0
3.5
4.0
4.5
5.0
5.5
6.0
Imprimer une séquence vers l'arrière
Une autre astuce consiste à imprimer une séquence à l'envers. Pour ce faire, vous devez spécifier un incrément négatif.
[email protected]:~$ seq 6 -1 4
6
5
4
Une capture d'écran de tous les exemples ci-dessus :

Que se passe-t-il lorsque vous mettez quelque chose comme 0,7 ? Dans ce cas, la limite supérieure ne sera pas dépassée.
[email protected]:~$ seq 3 0.7 6
3.0
3.7
4.4
5.1
5.8
Jusqu'à présent, vous n'avez utilisé aucune option avec la commande seq. Voyons et utilisons-les également.
Imprimer la séquence avec la même largeur
L'option w
avec la commande seq est utilisée pour garder la même largeur pour les nombres imprimés.
[email protected]:~$ seq -w 9 11
09
10
11
Imprimer la séquence dans un format spécifique
Vous pouvez formater la ligne de sortie dans un format spécifié avec l'option f
.
[email protected]:~$ seq -f '##%g##' 3 5
##3##
##4##
##5##
%g
est utilisé pour les numéros par défaut. %e
pour afficher le nombre au format exponentiel et %f
au format virgule flottante.
Imprimer la séquence avec une chaîne comme séparateur
Jusqu'à présent, les séquences étaient toutes imprimées verticalement. En effet, par défaut, le séparateur est le caractère de nouvelle ligne. Vous pouvez changer cela avec l'option s
.
[email protected]:~$ seq -s ':' 4
1:2:3:4
Le ' avant le séparateur n'est pas nécessaire mais c'est bien pour éviter les mauvaises surprises.
Utilisation pratique de la commande seq
Vous vous demandez peut-être quelle pourrait être une utilisation pratique de cette commande seq. Il pourrait y avoir de nombreuses situations où vous pourriez l'utiliser.
Un exemple particulier auquel je peux penser est lorsque vous utilisez une boucle for dans bash. Au lieu de spécifier manuellement la séquence dans la condition de boucle, vous pouvez utiliser la commande seq.
#!/bin/bash
for i in $(seq 4 2 18)
do
echo "Number $i"
done
Lorsque vous exécutez le script bash ci-dessus, il bouclera sur la séquence donnée et imprimera les valeurs.
[email protected]:~$ bash seq.sh
Number 4
Number 6
Number 8
Number 10
Number 12
Number 14
Number 16
Number 18
C'est à peu près tout ce que vous devez savoir sur la commande seq. Si vous voulez plus de détails, vous pouvez toujours utiliser sa page de manuel.