Skip to main content

Exemples d'utilisation de la commande Linux Seq

Shell Scripting Tutorial for Beginners 21 - Select loop (Mai 2024)

Shell Scripting Tutorial for Beginners 21 - Select loop (Mai 2024)
Anonim

Ce guide vous montrera comment utiliser la commande seq pour générer des listes de nombres dans le terminal Linux.

Syntaxe de base de la commande Seq

Imaginez que vous vouliez afficher les chiffres 1 à 20 à l'écran.

La commande seq suivante vous montre comment procéder:

seq 1 20

En soi, cette commande est assez inutile. À tout le moins, vous voudrez sortir les numéros dans un fichier.

Vous pouvez le faire en utilisant la commande cat comme suit:

seq 1 20 | chat> fichier numéroté

Vous aurez maintenant un fichier appelé numberedfile avec les numéros 1 à 20 imprimés sur chaque ligne.

La méthode que nous avons montrée jusqu'ici pour afficher une séquence de nombres aurait pu être condensée comme suit:

seq 20

Le numéro de départ par défaut est 1; il suffit donc d'indiquer le nombre 20 pour que la commande seq compte automatiquement entre 1 et 20.

Vous ne devez utiliser le format long que si vous souhaitez compter entre deux nombres différents comme suit:

seq 35 45

Cela affichera les nombres de 35 à 45 sur la sortie standard.

Comment définir un incrément à l'aide de la commande Seq

Si vous souhaitez afficher tous les nombres pairs compris entre 1 et 100, vous pouvez utiliser la partie incrémentation de seq à l'étape 2 chiffres à la fois, comme le montre l'exemple suivant:

seq 2 2 100

Dans la commande ci-dessus, le premier nombre est le point de départ.

Le deuxième nombre est le nombre à incrémenter à chaque étape, par exemple 2 4 6 8 10.

Le troisième nombre est le dernier nombre à compter.

Mise en forme de la commande Seq

Envoyer simplement des numéros à l'écran ou à un fichier n'est pas particulièrement utile.

Cependant, vous souhaiterez peut-être créer un fichier avec toutes les dates du mois de mars.

Pour ce faire, vous pouvez utiliser le commutateur suivant:

seq -f "% 02g / 03/2016" 31

Cela affichera une sortie similaire à celle-ci:

  • 01/03/2016
  • 02/03/2016
  • 03/03/2016

Vous remarquerez le% 02g. Il existe trois formats différents: e, f et g.

Comme exemple de ce qui se passe lorsque vous utilisez ces différents formats, essayez les commandes suivantes:

seq -f "% e" 1 0.5 3seq -f "% f" 1 0,5 3seq -f "% g" 1 0,5 3

La sortie du% e est la suivante:

  • 1.000000e + 00
  • 1.500000e + 00
  • 2.000000e + 00
  • 2.500000e + 00
  • 3.000000e + 00

La sortie du% f est la suivante:

  • 1.000000
  • 1.500000
  • 2.000000
  • 2.500000
  • 3.000000

Enfin, la sortie de% g est la suivante:

  • 1
  • 1.5
  • 2
  • 2.5
  • 3

Utilisation de la commande Seq dans le cadre d'une boucle for

Vous pouvez utiliser la commande seq dans le cadre d'une boucle for pour parcourir le même code plusieurs fois.

Par exemple, vous souhaitez afficher le terme "bonjour le monde" dix fois.

Voici comment vous pouvez le faire:

pour i en $ (seq 10)faireecho "bonjour le monde"terminé

Changer le séparateur de séquence

Par défaut, la commande seq affiche chaque numéro sur une nouvelle ligne.

Cela peut être changé pour être n'importe quel caractère de délimitation que vous souhaitez utiliser.

Par exemple, si vous souhaitez utiliser une virgule pour séparer les nombres, utilisez la syntaxe suivante:

seq -s, 10

Si vous préférez utiliser un espace, vous devez le mettre entre guillemets:

seq -s "" 10

Faire les numéros de séquence de la même longueur

Lorsque vous écrivez les numéros dans un fichier, vous pourriez être contrarié de voir que les nombres sont d'une longueur différente.

Par exemple:

  • 1
  • 2
  • 3
  • 10
  • 11
  • 99
  • 100
  • 200
  • 1000
  • 10000

Vous pouvez faire tous les nombres la même longueur comme suit:

seq -w 10000

Lorsque vous exécutez la commande ci-dessus, le résultat sera le suivant:

  • 00001
  • 00002
  • 00003
  • 00010
  • 00011
  • 00099
  • 00100
  • 00200
  • 01000
  • 10000

Affichage des numéros en ordre inverse

Vous pouvez afficher les numéros dans une séquence dans l'ordre inverse.

Par exemple, si vous souhaitez afficher les nombres 10 à 1, vous pouvez utiliser la syntaxe suivante:

seq 10 -1 1

Nombres à virgule flottante

Vous pouvez également utiliser la commande sequence pour travailler sur des nombres à virgule flottante.

Par exemple, si vous souhaitez afficher tous les nombres compris entre 0 et 1 avec un pas de 0,1, procédez comme suit:

seq 0 0.1 1

Résumé

La commande seq est plus utile lorsqu'elle est utilisée dans un script bash.