Recherche…


Introduction

Parfois, il est utile de diviser un fichier en plusieurs fichiers distincts. Si vous avez des fichiers volumineux, il peut être judicieux de les diviser en morceaux plus petits.

Diviser un fichier

L'exécution de la commande split sans aucune option divisera un fichier en 1 ou plusieurs fichiers séparés contenant chacun jusqu'à 1000 lignes.

split file

Cela créera des fichiers nommés xaa , xab , xac , etc., contenant chacun jusqu'à 1000 lignes. Comme vous pouvez le voir, tous sont préfixés par la lettre x par défaut. Si le fichier initial était inférieur à 1000 lignes, un seul de ces fichiers serait créé.

Pour modifier le préfixe, ajoutez le préfixe souhaité à la fin de la ligne de commande

split file customprefix

Maintenant, les fichiers nommés customprefixaa , customprefixab , customprefixac etc. seront créés

Pour spécifier le nombre de lignes à générer par fichier, utilisez l'option -l . Ce qui suit divisera un fichier en un maximum de 5000 lignes

split -l5000 file

OU

split --lines=5000 file

Vous pouvez également spécifier un nombre maximal d'octets au lieu de lignes. Cela se fait en utilisant les options -b ou --bytes . Par exemple, pour autoriser un maximum de 1 Mo

split --bytes=1MB file

Nous pouvons utiliser sed avec l'option w pour diviser un fichier en plusieurs fichiers. Les fichiers peuvent être divisés en spécifiant une adresse de ligne ou un motif.

Supposons que nous ayons ce fichier source que nous voudrions séparer:

cat -n sourcefile

1 sur le Ning Nang Nong
2 Où les vaches vont Bong!
3 et les singes disent tous BOO!
4 Il y a un Nong Nang Ning
5 Où vont les arbres Ping!
6 Et les théières jibber jabber joo.
7 sur le Nong Ning Nang

Commande pour diviser le fichier par numéro de ligne:

sed '1,3w f1
> 4,7w f2' sourcefile

Cela écrit line1 à line3 dans le fichier f1 et line4 à line7 dans le fichier f2, à partir du fichier source.

cat -n f1

1 sur le Ning Nang Nong
2 Où les vaches vont Bong!
3 et les singes disent tous BOO!

cat -n f2 

1 Il y a un Nong Nang Ning
2 Où vont les arbres Ping!
3 Et les théières jibber jabber joo.
4 sur le Nong Ning Nang

Commande pour diviser le fichier par contexte / modèle:

sed '/Ning/w file1
> /Ping/w file2' sourcefile

Cela divise le fichier source en fichier1 et fichier2. file1 contient toutes les lignes correspondant à Ning, file2 contient les lignes correspondant à Ping.

cat file1

Sur le Ning Nang Nong
Il y a un Nong Nang Ning
Sur le Nong Ning Nang

cat file2

Où vont les arbres Ping!



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow