La commande Linux csplit est un utilitaire polyvalent utilisé pour diviser un fichier en plusieurs segments sur la base de lignes de contexte ou de motifs spécifiés. Contrairement à la commande split, qui divise les fichiers en fonction de leur taille, csplit permet aux utilisateurs de définir des points de division à l’aide de numéros de ligne, d’expressions régulières ou d’une combinaison des deux, ce qui en fait un outil idéal pour traiter les fichiers texte dont la structure est prévisible.
La commande génère des fichiers de sortie nommés séquentiellement, avec un préfixe par défaut et des suffixes numériques, qui peuvent être personnalisés. Cette flexibilité est particulièrement utile pour des tâches telles que l’extraction de sections de fichiers journaux, le découpage de fichiers de configuration ou la préparation de données textuelles en vue de leur traitement par d’autres scripts ou applications.
Dans ce tutoriel, je vous montre comment utiliser cette commande de base Linux avec des exemples.
Table des matières
- 1 Quelle est la syntaxe de la commande csplit
- 2 Comment utiliser la commande csplit avec des exemples
- 2.1 Comment diviser des fichiers en fonction du nombre de lignes ?
- 2.2 Comment découper des fichiers à l’aide d’expressions régulières ?
- 2.3 Comment avoir un préfixe personnalisé au lieu du préfixe par défaut « xx » ?
- 2.4 Comment forcer csplit à ne pas supprimer les fichiers de sortie en cas d’erreur ?
- 2.5 Comment supprimer les lignes qui correspondent à un motif d’entrée ?
- 2.6 Spécifier le nombre de chiffres dans les noms de fichiers
- 3 Liens
Quelle est la syntaxe de la commande csplit
La commande csplit sur Linux est utilisée pour diviser un fichier en plusieurs parties en fonction des motifs de texte spécifiés ou des lignes. C’est un outil pratique pour scinder un fichier texte en plusieurs sous-fichiers de manière contrôlée et automatique. Voici un guide sur l’utilisation de csplit :
Voici la syntaxe de la commande :
csplit <options> <fichier> <modèle1 modèle2 ...>
Où :
- fichier : Le fichier à diviser
- modèle : Un modèle ou une expression régulière pour déterminer les points de séparation dans le fichier
Voici la liste des options de la commande :
Options | Description |
-b, –suffix-format=FORMAT | Utilise sprintf FORMAT au lieu de %02d |
-k, –keep-files | Ne pas supprimer les fichiers de sortie en cas d’erreur |
–suppress-matched | Supprime les lignes correspondant à PATTERN |
-n, –digits=DIGITS | Utilise le nombre de chiffres spécifié au lieu de 2 |
-s, –quiet, –silent | N’imprime pas le décompte des tailles des fichiers de sortie |
-z, –elide-empty-files | Supprimer les fichiers de sortie vides |
–help | Affiche cette aide et quitte |
–version | Affiche les informations sur la version et quitte |
Comment utiliser la commande csplit avec des exemples
Comment diviser des fichiers en fonction du nombre de lignes ?
Supposons que votre fichier contienne six lignes et qu’il faille le diviser à la troisième ligne.
1 Debian
2 Ubuntu
3 Mint Linux
4 Fedora
5 Arch Linux
6 Nitrux
Cela peut se faire en passant ‘3’ comme argument après la commande et le nom du fichier.
csplit fichier 3
Les nombres produits dans la sortie sont le nombre d’octets des fichiers produits par la commande. Deux fichiers ont été produits dans la sortie, à savoir xx00 et xx01.
Comment découper des fichiers à l’aide d’expressions régulières ?
Autre exemple, pour diviser un fichier chaque fois qu’une ligne contenant “Fedora” apparaît :
csplit fichier '/Fedora/' '{*}'
Voici les explications :
'/Fedora/'
indique le motif à trouver pour effectuer une division'{*}'
signifie que la commande doit continuer à diviser jusqu’à la fin du fichier
On obtient bien deux fichiers divisés sur la ligne contenant Fedora.
Comment avoir un préfixe personnalisé au lieu du préfixe par défaut « xx » ?
Par défaut, les fichiers que csplit produit en sortie ont pour préfixe ‘xx’. Cependant, si vous le souhaitez, vous pouvez changer le préfixe en utilisant l’option de ligne de commande -f, qui requiert le nouveau préfixe en entrée.
csplit -f malekal fichier '/Arch/' '{*}'
Comment forcer csplit à ne pas supprimer les fichiers de sortie en cas d’erreur ?
Par défaut, la commande csplit supprime les fichiers de sortie s’il existe déjà.
Vous pouvez modifier ce comportement en utilisant l’option -k dans la commande. Par exemple, la même commande a été exécutée à nouveau, mais avec cette option, et les fichiers de sortie n’ont pas été supprimés cette fois.
csplit -k fichier 3
Comment supprimer les lignes qui correspondent à un motif d’entrée ?
Pour supprimer une ligne qui correspond à un motif, utilisez l’option –suppress-matched.
Par exemple, ici on demande à diviser le fichier à la ligne 3.
csplit --suppress-matched fichier 3
On voit que celle-ci n’est pas présente dans les fichiers de sortie.
Spécifier le nombre de chiffres dans les noms de fichiers
Pour générer des fichiers avec des numéros à trois chiffres :
csplit -n 3 fichier '/Fedora/' '{*}'
Liens
- 12 exemples pour utiliser la commande cat sur Linux
- 6 exemples pour utiliser la commande tail sur Linux
- Comment utiliser la commande less sur Linux avec des exemples
- Utiliser la commande more sur Linux avec des exemples
- La commande cut de Linux : utilisation et exemples
- Comment utiliser la commande AWK avec des exemples
- Commande sed : utilisation et exemples
- 12 exemples de commandes grep sur Linux
- La commande TR : utilisations et exemples
- La commande echo : utilisations et exemples
- La commande sort Linux : utilisations et exemples
- La commande join Linux : utilisations et exemples