Sous Linux, vous pouvez trouver plusieurs commandes avec des fonctionnalités inhabituelles. L'une de ces commandes est seq, qui génère une séquence de nombres en fonction des arguments spécifiés.

Mais que pouvez-vous faire avec un utilitaire de ligne de commande qui vous lance un tas de chiffres? Vous le découvrirez dans ce guide.

Qu'est-ce que la commande seq ?

Comme mentionné ci-dessus, la commande seq sous Linux génère rapidement une séquence de caractères numériques. Les utilisateurs peuvent transmettre des arguments à la commande pour générer différentes combinaisons de nombres. Par exemple, vous pouvez obtenir une liste incrémentée en passant simplement un argument supplémentaire à seq.

Quelle est l'utilisation pratique de la commande cependant? Bien que seq puisse ne pas sembler être un outil puissant dans son intégralité, vous pouvez bénéficier de la commande en l'implémentant avec d'autres utilitaires Linux. Vous pouvez également utiliser seq dans scripts bash pour dévoiler sa vraie puissance.

Comment utiliser seq sous Linux

Seq ne prend que quelques arguments, ce qui en fait un outil facile à apprendre pour tout le monde.

Syntaxe de base

La syntaxe de base de la commande est:

numéros d'options de séquence

...où options sont les indicateurs que vous pouvez spécifier pour appeler différentes méthodes de la commande et Nombres sont les arguments que vous passez pour générer la séquence numérique.

Générer une liste de nombres

Les arguments Seq suivent le format d'entrée ci-dessous:

dernière séquence
seq premier dernier
seq premier incrément dernier

Lorsque vous ne spécifiez qu'un seul nombre, seq l'interprète comme la limite supérieure de la liste et génère une séquence à partir de un jusqu'au nombre spécifié.

séquence 5

La commande susmentionnée affichera ce qui suit:

1
2
3
4
5

Lorsque seq reçoit deux nombres en entrée, il les interprète comme la limite inférieure et la limite supérieure de la séquence. Pour générer une liste de nombres de quatre à huit:

séquence 4 8

Production:

4
5
6
7
8

Mais lorsque vous passez trois nombres à la commande, elle interprète le deuxième argument comme le nombre d'incrément. Par example:

seq 3 2 13

La commande susmentionnée affichera une liste de nombres allant de trois à 13 avec un incrément de deux.

3
5
7
9
11
13

Ajouter un séparateur entre les nombres

Par défaut, seq utilise un caractère de nouvelle ligne comme séparateur de la liste. C'est la raison pour laquelle chaque numéro de la liste est sur une ligne distincte.

Vous pouvez modifier ce comportement par défaut et utiliser un séparateur personnalisé à l'aide de la -s drapeau. Pour utiliser le Période (.) caractère comme séparateur:

seq -s. 3 7

Production:

3.4.5.6.7

Gardez à l'esprit que certains personnages comme le Tilde (~) doit être placé entre guillemets. C'est parce que le terminal utilise le Tilde caractère pour désigner le /home répertoire, et cela se reflétera dans la sortie si vous n'ajoutez pas les guillemets.

seq -s ~ 3 7

Production:

3/domicile/4/domicile/5/domicile/6/domicile/7

D'autre part, lorsque vous entourez le séparateur de guillemets:

seq -s '~' 3 7

Production:

3~4~5~6~7

Ajuster le format de sortie

Vous pouvez également modifier le format de la séquence de sortie à l'aide de la -F drapeau. Par défaut, seq extrait le style de format de l'entrée utilisateur. Par exemple, si vous spécifiez les nombres 0,1 et 0,5, la sortie par défaut aura un format de nombre à virgule flottante.

seq 0,1 0,5

Production:

0.1
0.2
0.3
0.4
0.5

Vous pouvez spécifier un format de sortie personnalisé à l'aide des diverses spécifications de conversion telles que %a, %e, %f, %g, %A, %E, %F et %G.

Vous pouvez utiliser le %F spécifiez si vous voulez que la sortie suive un format de nombre à virgule flottante.

seq-f %f 4 7

Production:

4.000000
5.000000
6.000000
7.000000

Pour modifier la précision jusqu'à deux décimales:

seq -f %0.2f 4 7

Production:

4.00
5.00
6.00
7.00

Vous pouvez également transformer complètement la sortie en spécifiant un modèle de sortie. Par exemple, pour obtenir une liste de toutes les adresses IP commençant par 192.168.5.x:

seq -f 192.168.5%g 1 233

Production:

Pour ajouter un remplissage à la sortie, vous pouvez utiliser le -w drapeau. le -w flag maintient la largeur de la sortie conformément au plus grand nombre spécifié.

Pour générer une séquence de nombres entre un et 1 000 avec un incrément de 100 tout en conservant une largeur constante:

seq -w 1 100 1000

Production:

0001
0101
0201
0301
0401
0501
0601
0701
0801
0901

Obtenir l'aide de la ligne de commande seq

Bien que seq soit facile à utiliser, les utilisateurs peuvent parfois ressentir le besoin de consultez la page de manuel pour la commande. le --aider flag affichera la page de manuel seq:

seq --help

Production:

Exemples pratiques

Comme déjà mentionné, seq est principalement utilisé avec d'autres commandes Linux, par exemple, touch et expr.

Effectuer des opérations mathématiques

Si vous souhaitez ajouter ou soustraire rapidement une plage de nombres particulière, vous pouvez le faire facilement en utilisant seq inside expr, qui est une commande Linux qui traite l'entrée comme une expression et affiche la sortie correspondante.

Pour additionner tous les nombres entre un et 100:

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

La commande seq génère une sortie comme suit:

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

Expr la traite comme une expression d'entrée et génère la solution.

5050

Vous pouvez effectuer d'autres opérations mathématiques en remplaçant simplement le séparateur dans la commande seq par d'autres opérateurs.

Créer rapidement plusieurs fichiers

Si vous souhaitez créer plusieurs fichiers sur Linux dont les noms suivent un modèle similaire, vous pouvez le faire facilement en utilisant la commande tactile et suiv.

Par exemple, pour créer 10 fichiers avec le nom fichier-x.txt, où X est un nombre de 1 à 10:

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

Touch créera les fichiers pour vous en un éclair.

Implémentation de seq dans les scripts

Considérez que vous écrivez un outil d'analyse de réseau comme Nmap dans bash, vous souhaiterez peut-être obtenir une liste de tous les ports ouverts dans un réseau. Mais pour cela, vous devez effectuer un ping sur chaque port (65535 au total) et analyser la réponse.

Pour gagner du temps, vous pouvez choisir d'utiliser seq et générer une liste d'adresses IP et de combinaisons de ports que vous pouvez utiliser dans votre script.

Supposons que vous souhaitiez obtenir la liste de tous les ports d'un périphérique avec l'adresse IP 1.2.3.4. Voici une commande rapide pour générer la sortie souhaitée:

seq -f 1.2.3.4:%g 1 65535

Production:

Vous pouvez ensuite utiliser cette sortie sous forme de liste et la parcourir, en vérifiant chaque port à l'aide de votre script et en analysant s'il est ouvert ou non.

À quelle vitesse seq génère-t-il les nombres ?

Vous pensez peut-être que si vous pouvez obtenir des résultats similaires en utilisant une boucle for dans bash, pourquoi choisir seq pour la tâche? C'est parce que le vrai pouvoir de seq réside dans sa vitesse. Seq est plus rapide que toute autre commande qui génère une séquence de nombres sous Linux.

Vous pouvez même tester sa vitesse en utilisant l'utilitaire de temps sur Linux. Voyons combien de temps faut-il à seq pour générer une liste d'un million de numéros à partir de un.

séquence temporelle 1000000

En regardant la sortie ci-dessous, vous pouvez voir qu'il n'a fallu que quatre secondes environ pour générer une liste d'un million de numéros.

La puissance de la ligne de commande Linux

Seq n'est pas le seul outil sous Linux qui se concentre fortement sur la fourniture de résultats rapides et précis. Bien que vous puissiez générer une liste de nombres en utilisant une boucle for en bash, ce n'est pas une pratique recommandée compte tenu de la rapidité avec laquelle seq est vraiment.

La ligne de commande Linux vous donne plus de contrôle sur le système d'exploitation et ses fonctionnalités, ce qui est également une raison pour laquelle vous devriez commencer à utiliser le terminal via l'interface graphique dès aujourd'hui.

E-mail
5 raisons de choisir le terminal Linux plutôt que l'interface graphique

La ligne de commande Linux a une grande importance en termes de performances, de contrôle et de facilité d'utilisation.

Lire la suite

Rubriques connexes
  • Linux
A propos de l'auteur
Profonde Sharma (65 articles publiés)

Deepesh est l'éditeur junior pour Linux chez MUO. Il écrit du contenu informatif sur Internet depuis plus de 3 ans. Dans ses temps libres, il aime écrire, écouter de la musique et jouer de la guitare.

Plus de Deepesh Sharma

Abonnez-vous à notre newsletter

Rejoignez notre newsletter pour des conseils techniques, des critiques, des ebooks gratuits et des offres exclusives !

Un pas de plus…!

Veuillez confirmer votre adresse e-mail dans l'e-mail que nous venons de vous envoyer.

.