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.
La ligne de commande Linux a une grande importance en termes de performances, de contrôle et de facilité d'utilisation.
Lire la suite
- Linux
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.
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.