Exploration des puissantes fonctionnalités de la commande seq sous Linux pour automatiser vos tâches de script
Guide complet de la commande seq sous Linux : Automatisez vos tâches avec puissance et précision
La commande seq est bien plus qu’un simple générateur de nombres. C’est un outil fondamental qui vous permet de créer des fichiers de test, contrôler des boucles, effectuer des analyses réseau et réaliser des calculs mathématiques. Dans ce guide détaillé, nous explorerons les utilisations pratiques de cette commande polyvalente qui révolutionnera votre approche de l’automatisation sous Linux.
1. Matériel nécessaire
Avant de commencer, assurez-vous de disposer des éléments suivants :
- Un système Linux avec accès au terminal
- La commande seq (généralement préinstallée sur la plupart des distributions)
- Connaissances de base des commandes shell
- Accès en écriture dans le répertoire de travail
- Outils complémentaires : bc, awk, xargs (habituellement disponibles)
2. Génération de nombres basique
2.1 Création de séquences simples
La fonction principale de seq consiste à imprimer des nombres en séquence. Pour générer une séquence de 1 à 5, utilisez simplement :
seq 5
Cette commande affichera les nombres 1, 2, 3, 4, 5 sur des lignes séparées.
2.2 Définition d’un point de départ personnalisé
Pour commencer à partir d’un nombre spécifique, fournissez le nombre de départ comme premier argument et le nombre final comme second :
seq 3 7
Cela génère les nombres de 3 à 7 inclus.
2.3 Utilisation d’incréments personnalisés
Pour créer des séquences avec des pas spécifiques, placez l’incrément entre les valeurs de début et de fin. Par exemple, pour générer les nombres impairs de 1 à 10 :
seq 1 2 10
Cette commande produit : 1, 3, 5, 7, 9.
2.4 Comptage en ordre décroissant
Pour compter à rebours, utilisez un incrément négatif :
seq 10 -1 1
Cela affiche les nombres de 10 à 1 en ordre décroissant.
3. Génération de nombres décimaux
La commande seq gère parfaitement les nombres à virgule flottante, ce qui s’avère utile pour les calculs scientifiques ou le traitement de données nécessitant une précision décimale.
Pour compter de 0,5 à 2,0 par incréments de 0,3 :
seq 0,5 0,3 2,0
Important : Utilisez la virgule comme séparateur décimal selon les conventions françaises.
4. Personnalisation des séparateurs
Par défaut, seq sépare chaque nombre par un caractère de nouvelle ligne. L’option -s
(séparateur) permet de définir un séparateur personnalisé.
Pour générer des nombres de 1 à 5 sur une seule ligne séparés par une virgule et un espace :
seq -s ", " 1 5
Alternativement, vous pouvez utiliser xargs pour placer tous les nombres sur une ligne :
seq 1 10 | xargs
5. Génération de séquences formatées
5.1 Formatage avec des zéros de remplissage
Pour générer des nombres de 1 à 10 avec des zéros de remplissage pour obtenir deux chiffres :
seq -f "%02g" 1 10
Le format %02g
indique à seq de remplir le nombre pour qu’il fasse 2 chiffres avec des zéros en tête.
5.2 Option de largeur égale
Pour une tâche plus simple de remplissage avec des zéros, utilisez l’option -w
:
seq -w 1 100
Cette commande assure que tous les nombres ont la même largeur en ajoutant des zéros en tête.
5.3 Création de fichiers avec noms formatés
Combinez seq avec touch et xargs pour générer plusieurs fichiers vides :
seq -f "texte_%02g.txt" 1 5 | xargs touch
Après exécution, vous obtiendrez des fichiers (texte_01.txt, texte_02.txt, etc.) qui se trieront toujours dans l’ordre numérique correct.
6. Génération de fichiers de test avec contenu
Utilisez seq pour créer des fichiers de test avec des données factices en combinant seq avec des boucles et la redirection.
6.1 Création de fichiers simples
Ce script crée cinq fichiers, chacun contenant une ligne de texte indiquant son numéro :
for i in $(seq 1 5); do echo "Ceci est le fichier de test numéro $i" > fichiertesteur_$i.txt done
6.2 Génération de fichiers multi-lignes
Le script suivant crée cinq fichiers, chacun contenant 100 lignes numérotées de manière unique :
for i in $(seq 1 5); do for ligne in $(seq 1 100); do echo "Fichier $i, Ligne $ligne: Contenu aléatoire ici" done > "fichier_$i.txt" done
7. Répétition de commandes un nombre spécifique de fois
Parfois, vous devez exécuter une commande plusieurs fois lorsque seule la répétition compte, pas les nombres réels.
7.1 Test de stress d’applications
Utilisez seq avec xargs pour tester la charge d’un site web :
seq 10 | xargs -I {} curl -s http://monsite.com > /dev/null
Cette commande sollicite le site web dix fois, aidant à vérifier si votre serveur web gère correctement les requêtes simultanées.
7.2 Répétition avec boucles for
Pour afficher “Bonjour, monde !” cinq fois :
for i in $(seq 1 5); do echo "Bonjour, monde !" done
8. Création d’horodatages et d’intervalles temporels
8.1 Génération d’intervalles de temps
Pour obtenir une liste de chaque intervalle de 15 minutes dans une heure :
seq -f "%02g" 0 15 59
Cela produit : 00, 15, 30, et 45.
8.2 Création d’horodatages précis
Cet exemple imprime un horodatage pour chaque minute sur les 10 prochaines minutes :
debut=$(date +%s) for i in $(seq 0 9); do echo "$(date -d "@$((debut + i*60))" +"%Y-%m-%d %H:%M:%S")" done
Note : Le script imprime tous les 10 horodatages futurs immédiatement. Il n’attend pas une minute entre les sorties.
9. Vérification de la disponibilité des ports
Utilisez seq pour scanner une plage de ports et vérifier leur disponibilité.
9.1 Scan avec netcat
for port in $(seq 8000 8010); do nc -z -v -w 1 localhost $port &>/dev/null && echo "Port $port est OUVERT" done
Explication des options :
-z
: Scanne les services en écoute sans envoyer de données-v
: Fournit une sortie détaillée (que nous masquons)-w 1
: Définit un délai d’attente de 1 seconde&>/dev/null
: Redirige toute la sortie de nc
9.2 Méthode alternative avec Bash
for port in $(seq 8000 8100); do (echo > /dev/tcp/localhost/$port) &>/dev/null && echo "Port $port est ouvert" done
10. Boucles sur des plages dans les scripts
Seq rend les boucles sur des plages numériques propres et claires, particulièrement pour des plages complexes ou des nombres à virgule flottante.
10.1 Script de traitement par lots
!/bin/bash
ELEMENT_DEBUT=25 ELEMENT_FIN=75 echo "Début du traitement des éléments de $ELEMENT_DEBUT à $ELEMENT_FIN..." for numero_element in $(seq $ELEMENT_DEBUT $ELEMENT_FIN); do echo "Traitement de l'élément$numero_element..."
sleep 0,1simule le travail
done echo "Tous les éléments traités !"
10.2 Création de sauvegardes quotidiennes
Créer des sauvegardes quotidiennes pour un mois entier devient simple avec :
for jour in $(seq -w 1 31); do tar -czf sauvegarde_2025-10-$jour.tar.gz /donnees done
11. Division de fichiers basée sur les lignes
Si vous devez diviser un gros fichier en petits morceaux, seq peut vous aider à calculer les plages de lignes pour chaque morceau.
lignes=$(wc -l morceau_$(printf "%04d" $debut).txt done
Ce script obtient d’abord le nombre total de lignes, puis utilise seq pour générer le numéro de ligne de début pour chaque morceau.
12. Opérations mathématiques
12.1 Calcul de sommes avec bc
Pour additionner tous les nombres de 1 à 100 :
seq -s "+" 1 100 | bc
Ici, au lieu de séparer les nombres par des nouvelles lignes, nous plaçons un signe + entre eux.
12.2 Calculs avec awk
Vous pouvez obtenir le même résultat avec awk :
seq 1 100 | awk '{s+=$1} END{print s}'
13. Conseils avancés et bonnes pratiques
13.1 Optimisation des performances
Attention : Pour de très grandes séquences, considérez l’utilisation de boucles Bash natives qui peuvent être plus efficaces :
for ((i=1; i<=1000000; i++)); do echo $i done
13.2 Gestion des erreurs
Toujours vérifier la validité des arguments avant d’utiliser seq dans des scripts de production :
if [[ $1 =~ ^[0-9]+$ ]] && [[ $2 =~ ^[0-9]+$ ]]; then seq $1 $2 else echo "Erreur : Arguments invalides" exit 1 fi
Conclusion
La commande seq, bien qu’elle puisse sembler être un utilitaire mineur, résout élégamment de nombreux petits problèmes répétitifs. Elle se combine avec d’autres commandes Linux pour créer des one-liners puissants et des scripts efficaces, en faisant un outil essentiel pour tout utilisateur de ligne de commande.
Que vous automatisiez des tâches de maintenance système, génériez des données de test, ou effectuiez des calculs rapides, seq offre une solution simple et élégante. Sa polyvalence et sa facilité d’utilisation en font un compagnon indispensable dans votre arsenal d’outils Linux.
En maîtrisant ces techniques, vous pourrez transformer des tâches répétitives fastidieuses en scripts automatisés efficaces, améliorant ainsi votre productivité et la fiabilité de vos processus système.

Rédactrice spécialisée en édition de site. Formation de journaliste et passionnée par les nouvelles technologies, l’intelligence artificielle et la rédaction web.
Laisser un commentaire