Commande Linux · 4 min read · Sep 14, 2025

Commande Linux Csplit expliquée pour les débutants (6 exemples)

La commande Linux csplit est un utilitaire polyvalent utilisé pour diviser un fichier en plusieurs segments en fonction de lignes ou de motifs contextuels 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 en utilisant des numéros de ligne, des expressions régulières, ou une combinaison des deux, ce qui le rend idéal pour traiter des fichiers texte avec une structure prévisible. La commande génère des fichiers de sortie nommés de manière séquentielle, 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, la découpe de fichiers de configuration, ou la préparation de données textuelles pour un traitement par d’autres scripts ou applications.

Dans ce tutoriel, nous allons discuter des bases de cet outil et apprendre à l’utiliser. Mais avant cela, il convient de mentionner que toutes les commandes/instructions mentionnées ici ont été testées sur Ubuntu 24.04.

Commande Csplit Linux

Voici comment la page de manuel de la commande la définit :

csplit - diviser un fichier en sections déterminées par des lignes contextuelles

Voici sa syntaxe générique :

csplit [OPTION]... FICHIER MOTIF...

Les petits fichiers individuels créés par csplit ont des noms comme xx00 et xx01. La définition suivante - tirée de la page de manuel de la commande - devrait clarifier les choses :

Output pieces of FILE separated by PATTERN(s) to files 'xx00', 'xx01', ..., and output byte   
counts of each piece to standard output.

Les exemples suivants de type Q&R devraient vous donner une bonne idée de la façon dont fonctionne la commande csplit.

Q1. Comment diviser des fichiers en fonction du nombre de lignes ?

Supposons que votre fichier contienne six lignes, et que l’exigence soit de diviser ce fichier à la troisième ligne. Cela peut être fait en passant ‘3’ comme argument de ligne de commande après la commande et le nom du fichier.

Par exemple, dans notre cas, le fichier1 contenait les lignes suivantes :

1       Asie  
2      Afrique  
3      Europe  
4   Amérique du Nord  
5   Amérique du Sud  
6      Australie

Et voici la commande que nous avons exécutée :

csplit file1 3

Les nombres produits dans la sortie sont le nombre d’octets pour les fichiers que la commande a produits. Deux fichiers ont été produits dans la sortie, à savoir xx00 et xx01.

Le contenu de ces fichiers confirme que la division a eu lieu à la ligne numéro 3.

Q2. Comment diviser des fichiers en utilisant des expressions régulières ?

Vous pouvez également utiliser des expressions régulières avec la commande csplit. Par exemple, dans le cas précédent, si vous souhaitez que l’outil répète le motif une fois de plus, vous pouvez le faire en utilisant la commande suivante :

csplit file1 3 {1}

Ainsi, dans ce cas, trois fichiers de sortie ont été produits :

diviser des fichiers en utilisant des expressions régulières

Q3. Comment avoir un préfixe personnalisé au lieu du ‘xx’ par défaut ?

Par défaut, les fichiers que csplit produit en sortie ont ‘xx’ comme préfixe. Cependant, si vous le souhaitez, vous pouvez changer le préfixe en utilisant l’option de ligne de commande -f, qui nécessite le nouveau préfixe comme entrée.

Par exemple, la commande suivante produira des fichiers ayant ‘htf’ comme préfixe.

csplit file1 1 -f htf

Q4. Comment forcer csplit à ne pas supprimer les fichiers de sortie en cas d’erreur ?

La commande csplit, par défaut, supprime les fichiers de sortie (tous, s’ils ont été créés) dès qu’une erreur est rencontrée. Par exemple, la capture d’écran suivante confirme qu’aucun fichier de sortie n’a finalement été produit :

Cependant, vous pouvez changer 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.

Q5. Comment supprimer les lignes qui correspondent au motif d’entrée ?

La commande csplit permet également de supprimer les lignes qui correspondent au motif d’entrée. L’option en question est –suppress-matched.

Par exemple, la commande suivante divise le fichier (file1) à la ligne 2 (xx00 contiendra la ligne 1, tandis que xx11 contiendra le reste des lignes).

csplit file1 2

Mais si vous souhaitez supprimer la ligne 2, vous pouvez exécuter la commande suivante :

csplit --suppress-matched file1 2

Q6. Comment utiliser un nombre de chiffres personnalisé au lieu des 2 par défaut ?

Tout comme le préfixe lui-même, le nombre de chiffres qui suivent le préfixe dans les noms de fichiers de sortie est également personnalisable. Supposons que vous souhaitiez avoir des noms comme xx000 et xx0001, vous pouvez le faire en utilisant l’option de ligne de commande -n, qui nécessite un nombre d’entrée signifiant le nouveau nombre de chiffres.

Par exemple :

csplit -n 1 file1 2

La commande ci-dessus produirait des noms de fichiers comme xx0, xx1, etc.

Conclusion

Un utilisateur moyen de la ligne de commande Linux n’a peut-être pas besoin de diviser quotidiennement, mais c’est un utilitaire important que vous devriez au moins connaître. Nous avons couvert la plupart des exemples de base et des options de ligne de commande ici. Essayez-les, puis rendez-vous sur la page de manuel de l’outil pour en savoir plus.

Share: X/Twitter LinkedIn

Recevez de nouveaux articles dans votre boîte de réception.

Aucun spam. Désabonnez-vous à tout moment.