Je veux diviser un fichier journal de 400 000 lignes à partir d'un numéro de ligne particulier.
Pour cette question, faisons de ce nombre arbitraire 300k.
Existe-t-il une commande linux qui me permet de faire cela ( dans le script )?
Je sais que cela split
me permet de diviser le fichier en parties égales soit par taille ou par numéro de ligne, mais ce n'est pas ce que je veux. Je veux le premier 300k dans un fichier et le dernier 100k dans le deuxième fichier.
Toute aide serait appréciée. Merci!
À la réflexion, ce serait plus adapté au site superutilisateur ou au site Serverfault.
linux
shell
split
filesplitting
dénormaliseur
la source
la source
Réponses:
De plus, après réflexion, la division fonctionnera dans votre cas, car la première division est plus grande que la seconde. Split met la balance de l'entrée dans le dernier split, donc
split -l 300000 file_name
produira
xaa
avec 300k lignes etxab
avec 100k lignes, pour une entrée avec 400k lignes.la source
tail -n +L file_name > bottom_file
où simplementL=K+1
sans avoir besoin de courir enwc
premiersed -n '1,1000p' test.log > top_test.log ; sed '1,1000d' test.log > bottom_test.log
. IHMO, c'est plus simple et ne nécessite pas de calculer le nombre total de lignes. De plus, cela fonctionne toujours si des lignes ont été ajoutées entre l'exécution de chaque commande.