Comment limiter (ou tronquer) le fichier texte par le nombre de lignes?
Je voudrais utiliser un terminal/coque pour tronquer ou de limiter un fichier texte à un certain nombre de lignes.
J'ai tout un répertoire de fichiers texte, dont seule la première ~50k lignes sont utiles.
Comment supprimer toutes les lignes de plus de 50000?
source d'informationauteur sjmurphy
Vous devez vous connecter pour publier un commentaire.
En place de troncature
À tronquer le fichier en place avec sed, vous pouvez effectuer les opérations suivantes:
-i
moyens en place.d
signifie supprimer.50001,$
signifie que les lignes de 50001 à la fin.Vous pouvez faire une copie de sauvegarde du fichier en ajoutant une extension de l'argument de
-i
par exemple,.backup
ou.bak
:Dans OS-X ou FreeBSD vous devez fournir un argument à
-i
- pour ce faire, tout en évitant de faire une sauvegarde:Le long de l'argument de nom de version est comme suit, avec et sans la sauvegarde argument:
Nouveau Fichier
Pour créer un nouveau fichier tronqué, rediriger simplement de la tête vers le nouveau fichier:
-n50000
désigne le nombre de lignes, à la tête sinon par défaut est 10.>
moyen de rediriger en écrasant tout ce qui pourrait l'être.>>
pour>
si vous voulez ajouter dans le nouveau fichier.Il est regrettable que vous ne pouvez pas rediriger dans le même fichier, c'est pourquoi sed est recommandé pour les en-lieu de la troncature.
Pas de sed? Essayez Python!
C'est un peu plus saisissant que le sed. Sed est l'abréviation de "Éditeur de Flux" après tout, et c'est une autre raison pour les utiliser, c'est ce que l'outil est adapté pour.
Cela a été testé sur Linux et Windows avec Python 3:
Pour expliquer le Python:
Le blackhole fonctionne comme
/dev/null
. Il est liéextend
méthode sur undeque
avecmaxlen=0
qui est le moyen le plus rapide pour gaz d'échappement d'un itérateur en Python (que je connais).Nous ne pouvons pas simplement une boucle sur le fichier d'objet parce que le
tell
méthode serait bloqué, donc nous avons besoin de laiter(f.readline, '')
truc.Cette fonction montre le gestionnaire de contexte, mais c'est un peu superflue, puisque Python serait de fermer le fichier sur la sortie de la fonction. L'utilisation est simple:
Très facile en effet à l'aide de sed:
Cela permettra d'imprimer uniquement les lignes 1 à 50000 dans le fichier 'nom de fichier'.