Commande csplit
Objectif
Fractionne un fichier en fichiers individuels.
Syntaxe
csplit [ -f Préfixe ] [ -k ] [ -n Nombre ] [ -s ] Argument de fichier ...
Descriptif
La commande csplit copie le fichier spécifié et sépare la copie en segments. Le fichier d'entrée d'origine, qui reste inchangé, doit être un fichier texte.
La commande csplit écrit les segments dans les fichiers xx00 . xx99, selon le nombre de fois où le paramètre Argument est spécifié (99 est la valeur maximale). Par défaut, le paramètre Argument attend un numéro de ligne. Les règles suivantes s'appliquent lorsque vous spécifiez plusieurs numéros de ligne:
- Le fichier xx00 contient les lignes du début du fichier d'origine jusqu'au numéro de ligne spécifié dans le premier paramètre Argument , sans l'inclure.
- Le fichier xx01 contient des lignes commençant par le nombre spécifié par le premier paramètre Argument jusqu'à, mais n'incluant pas, la ligne référencée par le second paramètre Argument . Chaque numéro de ligne indiqué comme argument marque le début d'un nouveau fichier.
- Le fichier xxnn (le dernier fichier créé) contient des lignes commençant par le nombre spécifié par le dernier paramètre Argument jusqu'à la fin du fichier.
Par exemple, si le fichier d'origine comportait 108 lignes et que vous avez entré:
csplit orginal.txt 11 72 98la commande csplit crée quatre fichiers: le fichier xx00 contient les lignes 1 à 10, le fichier xx01 contient les lignes 11 à 71, le fichier xx02 contient les lignes 72 à 97, le fichier xx03 contient les lignes 98 à 108.
Le paramètre Argument peut également contenir les symboles et chaînes de modèle suivants:
| Article | Descriptif |
|---|---|
| /Motif/ | Crée un fichier qui contient le segment de la ligne en cours jusqu'à la ligne contenant le modèle spécifié, sans l'inclure. La ligne contenant le motif devient la ligne en cours. |
| %Motif% | Fait de la ligne contenant le modèle spécifié la ligne en cours, mais ne crée pas de fichier pour le segment. |
| +Nombre | Avance le nombre de lignes spécifié à partir de la ligne correspondant au modèle précédent. Par exemple :/Page/+5recherches pourPage, puis avance de 5 lignes. |
| -Numéro | Permet de déplacer vers l'arrière le nombre de lignes indiqué à partir de la ligne correspondant au modèle précédent. Par exemple :/Page/-5recherches pourPage, puis sauvegarde 5 lignes. |
| {Numéro} | Répète l'option précédente le nombre de fois indiqué. Ce nombre peut suivre n'importe quel modèle ou numéro de ligne. S'il suit un modèle, la commande csplit réutilise ce modèle le nombre de fois spécifié. Si elle suit un numéro de ligne, la commande csplit fractionne le fichier à partir de ce point pour le nombre de lignes spécifié par le numéro de ligne. |
Placez des guillemets autour de tous les modèles contenant des espaces ou d'autres caractères spéciaux dans le shell. Les modèles ne peuvent pas contenir de caractères de nouvelle ligne imbriqués. Dans une expression telle que[a-z], le signe-(moins) signifie à, en fonction de la séquence de classement en cours. Une séquence de classement peut définir des classes d'équivalence à utiliser dans des plages de caractères.
Indicateurs
| Article | Descriptif |
|---|---|
| -f Préfixe | Indique le préfixe à utiliser pour les segments de fichier créés. La valeur par défaut de cette variable est xx. |
| -k | Laisse intacts les segments de fichier créés en cas d'erreur. |
| -n Nombre | Modifie le nombre de décimales utilisées dans les noms de fichier créés. La valeur par défaut est deux décimales, ou xx00 . xx99. Si vous spécifiez l'indicateur -n 4 , par exemple, les nouveaux fichiers sont nommés xx0000 . xx0099. |
| -S | Supprime l'affichage du nombre de caractères. |
Statut de sortie
Cette commande renvoie les valeurs de sortie suivantes :
| Article | Descriptif |
|---|---|
| 0 % | L'opération a abouti. |
| >0 | Une erreur s'est produite. |
Exemples
- Pour fractionner le texte debookdans un fichier distinct pour chaque chapitre, entrez:
Cela crée 10 fichiers, xx00 à xx09. Le fichier xx00 contient la partie frontale qui précède le premier chapitre. Les fichiers xx01 à xx09 contiennent des chapitres individuels. Chaque chapitre commence par une ligne qui contient uniquement le motChapteret le numéro du chapitre.csplit book "/^ Chapter *[k.0-9]k./" {9} - Pour spécifier le préfixechappour les fichiers créés à partir debook, entrez:csplit -f chap book "/^ Chapter *[k.0-9]k./" {9}Cette divisionbookdans les fichiers nommés chap00 à chap09.
Fichiers
| Article | Descriptif |
|---|---|
| /usr/bin/csplit | Contient la commande csplit . |