J'ai un gros fichier et je dois le diviser en deux fichiers. Supposons que dans le premier fichier, les 1000 lignes doivent être sélectionnées et placées dans un autre fichier et supprimez ces lignes dans le premier fichier.
J'ai essayé d'utiliser split
mais cela crée plusieurs morceaux.
text-processing
awk
split
csplit
Aravind
la source
la source
split --help
?Réponses:
Le moyen le plus simple est probablement d'utiliser
head
ettail
:Cela mettra les 1000 premières lignes de
input-file
enoutput1
, et toutes les lignes de 1001 jusqu'à la fin enoutput2
la source
Je pense que
split
c'est votre meilleure approche.Essayez d'utiliser l'
-l xxxx
option, où xxxx est le nombre de lignes que vous souhaitez dans chaque fichier (la valeur par défaut est 1000).Vous pouvez utiliser l'
-n yy
option si vous êtes plus préoccupé par la quantité de fichiers créés. L'utilisation-n 2
divisera votre fichier en seulement 2 parties, quelle que soit la quantité de lignes dans chaque fichier.Vous pouvez compter le nombre de lignes de votre fichier avec
wc -l filename
. Il s'agit de la commande 'wordcount' avec l'option lignes.Les références
man split
man wc
la source
split -l 1000 bigfile && mv xaa piece1 && cat x?? > piece2 && rm x??
.C'est un travail pour
csplit
:sera
s
ilently diviséinfile
, la première piècexx00
- jusqu'à , mais non y compris la ligne 1001 et la seconde piècexx01
- les lignes restantes.Vous pouvez jouer avec les options si vous avez besoin de noms de fichiers de sortie différents, par exemple en utilisant
-f
et en spécifiant un préfixe :produit deux fichiers nommés
piece.00
etpiece.01
Avec une puce,
head
vous pouvez également faire quelque chose comme:la source
csplit
. Très agréable. (Je suis en train de lire la liste des commandes POSIX et j'ai eu énormément de malcsplit
à comprendre la raison d'être de la commande au début. Il s'avère que c'est vraiment très simple.) :)Un moyen simple de faire ce que la question demande, en une seule commande:
ou, pour ceux d'entre vous qui détestent vraiment taper de longues commandes intuitivement compréhensibles,
la source