93 votes

Comment classer fractionné à un numéro de ligne

AJOUTÉE POUR LES RENDRE CONFORMES AVEC LES DIRECTIVES DE LA COMMUNAUTÉ

================================================================

J'ai un script shell qui scanne un répertoire pour les longs fichiers journaux afin qu'ils puissent divisé en petits morceaux.

Depuis que je suis excentrique, je ne veux pas les séparer en de même taille, au lieu je tiens à les diviser, à un numéro de ligne, par conséquent, la production de deux nouveaux fichiers. Chacun de tailles différentes. Lequel quand ils sont concaténés serait de produire le fichier d'origine.

Les détails sur la façon dont les fichiers doivent être répartis de la façon suivante.

================================================================

D'ORIGINE

Je veux diviser un 400k longue ligne du fichier journal à partir d'un numéro de ligne.

Pour cette question, permet de rendre cela un nombre arbitraire 300k.

Est-il une commande linux qui me permet de faire cela (dans le script)?

Je connais split me permet de diviser le fichier en parties égales, soit par la taille ou des numéros de ligne, mais ce n'est pas ce que je veux. Je veux la première 300k dans un fichier, et le dernier 100k dans le second fichier.

Toute aide serait appréciée. Merci!

Sur la deuxième réflexions ce serait plus adapté pour le superutilisateur ou serverfault site.

177voto

academicRobot Points 3873

nombre de lignes (N): wc -l file_name

début du fichier (premières lignes K): head -n K file_name > top_file

bas du fichier (L = NK): tail -n L file_name > bottom_file

Aussi, à bien y penser, la scission fonctionnera dans votre cas, car la première scission est plus grande que la seconde. Split place la balance de l'entrée dans la dernière division, donc

split -l 300000 file_name

affichera xaa avec 300k lignes et xab avec 100k lignes, pour une entrée de 400k lignes.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X