Linux fournit un large éventail de commandes pour la manipulation et le traitement du texte, y compris la commande split. Avec split, vous pouvez facilement diviser des fichiers volumineux en fichiers plus petits ou extraire des parties spécifiques d’un fichier en fonction de certains critères.


Voyons comment utiliser la commande split pour diviser des fichiers sous Linux. Que vous ayez besoin d’extraire des parties spécifiques d’un fichier volumineux ou de diviser un fichier en morceaux plus petits, la commande split peut vous aider à atteindre vos objectifs facilement.

Qu’est-ce que la commande split ?

La commande split est un outil de ligne de commande Linux populaire créé par Torbjorn Granlund et Richard M. Stallman. Comme son nom l’indique, la commande split est utilisée pour diviser un fichier en sous-fichiers plus petits.

Cette commande est utile pour gérer des fichiers volumineux ou pour transférer des fichiers sur des réseaux dont la bande passante est limitée. En divisant un fichier volumineux en plusieurs parties, vous pouvez réduire la quantité de données à transférer ou à stocker à un moment donné. Vous pouvez également inverser la commande split pour combiner plusieurs fichiers en un seul.

Syntaxe de la commande split

La syntaxe de base de la commande split est la suivante :

 split [OPTION]... [FILE] [PREFIX] 
  • [OPTION]: La commande split dispose de différentes options pour décider de la manière dont vous souhaitez que le fichier soit divisé et d’autres fonctionnalités spécifiques que vous pourriez souhaiter ajouter.
  • [FILE]: Il s’agit du chemin d’accès au fichier que vous souhaitez diviser.
  • [PREFIX]: Il s’agit du préfixe des sous-fichiers.

Comment utiliser la commande split

Vous pouvez utiliser la commande split pour diviser un fichier volumineux en fichiers plus petits en fonction de leur taille ou de leur longueur. Vous pouvez même choisir le nombre de fichiers plus petits que vous souhaitez.

Pour la démonstration, nous utiliserons un fichier texte nommé grandfichier.txt. Veuillez choisir un fichier texte comportant plusieurs lignes et de taille relativement importante pour ce tutoriel. Si vous ne disposez pas d’un tel fichier, vous pouvez utiliser un éditeur de texte Linux ou la commande cat pour coller un texte de grande taille et le sauvegarder.

Diviser de gros fichiers en fonction du nombre de lignes

Vous pouvez utiliser la commande split pour diviser un fichier volumineux en fichiers plus petits en fonction d’un nombre spécifique de lignes par fichier. Voici la syntaxe :

 split -l [number of lines] [input file] [output file prefix] 

Par exemple, si vous souhaitez diviser un fichier de 210 lignes en fichiers de 50 lignes chacun, vous obtiendrez cinq fichiers plus petits. Les quatre premiers fichiers contiendraient 50 lignes chacun et le cinquième fichier ne contiendrait que 10 lignes.

Pour diviser un fichier appelé « largefile.txt » en fichiers plus petits de 100 lignes chacun, exécutez la commande suivante :

 split -l 100 largefile.txt smallfile 

Listez le contenu du répertoire à l’aide de la commande ls, et vous verrez les fichiers scindés.

Le résultat du découpage de gros fichiers par lignes

Diviser les fichiers volumineux en fonction de leur taille

Vous pouvez également utiliser la commande split pour diviser un fichier volumineux en fichiers plus petits en fonction d’une taille de fichier spécifique. Voici la syntaxe de base :

 split -b [size in bytes] [input file] [output file prefix] 

Divisez le fichier large.txt en fichiers plus petits de 300 octets chacun en exécutant cette commande :

 split -b 300 largefile.txt smallfile 

Voici le résultat :

Le résultat de la division d'un grand fichier par taille

Diviser un gros fichier en un nombre spécifique de fichiers

Vous pouvez également diviser un fichier en un nombre fixe de fichiers, indépendamment du nombre de fichiers et d’octets qu’ils contiennent. Pour ce faire, vous utilisez la commande -n . Voici la syntaxe :

 split -n [number of files] [input file] [output file prefix] 

Pour diviser un gros fichier en cinq parties, exécutez la commande suivante :

 split -n 5 largefile.txt smallfile 

Le résultat devrait ressembler à ceci :

Découpage d'un gros fichier par nombre de fichiers

Modifier la longueur du suffixe des fichiers fractionnés

Comme vous l’avez peut-être remarqué, la longueur par défaut des suffixes attachés au nom du fichier de sortie est de deux. Par exemple, smallfileaa, smallfileab, smallfileac, etc.

Pour modifier la longueur du suffixe, vous utilisez la commande -a . Voici la syntaxe pour changer la longueur du suffixe :

 split -a [length of suffix] [input file] [output file prefix] 

Vous pouvez utiliser cette option de longueur de suffixe avec d’autres commandes de découpage. Pour diviser le fichier largefile.txt en 10 parties avec une longueur de suffixe de 4, exécutez cette commande :

 split -a 4 -n 10 largefile.txt smallfile 

Lorsque vous listerez le contenu du répertoire, la sortie devrait ressembler à ceci :

Diviser un fichier volumineux en fichiers plus petits avec un suffixe plus long

Fusionner plusieurs fichiers avec cat

La bonne nouvelle, c’est qu’il est toujours possible de fusionner à nouveau des fichiers divisés pour obtenir le fichier d’origine. Pour fusionner à nouveau des fichiers divisés dans le fichier d’origine, utilisez la commande cat. Voici la syntaxe pour ce faire :

 cat [split files] > [output file] 

Lorsque vous utilisez la commande cat pour fusionner des fichiers fractionnés, il est important de spécifier l’ordre correct des fichiers fractionnés.

La commande cat concatène simplement les fichiers dans l’ordre spécifié, donc si les fichiers ne sont pas dans le bon ordre, le fichier fusionné sera corrompu.

Dans un scénario où vous avez de nombreux fichiers fractionnés, par exemple une centaine de fichiers fractionnés, il serait fastidieux de saisir chaque fichier l’un après l’autre et dans le bon ordre.

C’est là que le préfixe intervient. Il suffit d’ajouter un astérisque (*) pour fusionner tous les fichiers commençant par ce préfixe.

 cat prefix* > [output file] 

Voici un exemple de commande qui fusionne des fichiers fractionnés petitfileaa, petitfileab, petitfileacet petitfilead dans un seul fichier appelé grandfichier.txt:

 cat smallfile* > bigfile.txt 

Cette commande va concaténer le contenu de tous les fichiers fractionnés qui correspondent au motif petitfichier* et redirige la sortie vers un nouveau fichier appelé bigfile.txt. Il listera également les fichiers scindés dans l’ordre naturel basé sur leur nom, ce qui devrait être l’ordre correct pour la fusion.

Utiliser les outils Linux pour augmenter votre efficacité

La commande split n’est qu’un des nombreux outils fournis par Linux pour vous aider à gérer efficacement des fichiers volumineux en les divisant en morceaux plus petits et plus faciles à gérer.

En maîtrisant les commandes de traitement de texte de Linux, vous pouvez gagner du temps et des ressources et devenir plus efficace.