Si vous essayez de traiter un fichier texte difficile à manipuler, le fractionner en sections peut parfois aider à accélérer le traitement, en particulier si nous devions importer un fichier dans un tableur. Ou vous pouvez simplement extraire un ensemble de lignes particulier d’un fichier.
Entrez split, wc, tail, cat et grep. (ne pas oublier sed et awk). Linux contient un ensemble complet d’utilitaires permettant de travailler avec des fichiers texte sur la ligne de commande. Pour notre tâche d'aujourd'hui, nous utiliserons split et wc.
Nous examinons d’abord notre fichier journal….
> ls -l -rw-r–r– 1 thegeek ggroup 42046520 2006-09-19 11:42 access.log
Nous voyons que la taille du fichier est de 42Mo. C’est un peu gros… mais combien de lignes traitons-nous? Si nous voulions importer cela dans Excel, il nous faudrait garder moins de 65 000 lignes.
Vérifions le nombre de lignes du fichier à l’aide de l’utilitaire wc, qui signifie «nombre de mots».
> wc -l access.log 146330 access.log
Nous avons dépassé notre limite. Nous devrons diviser cela en 3 segments. Pour ce faire, nous allons utiliser l’utilitaire split.
> split -l 60000 access.log > ls -l
total 79124 -rw-rw-r– 1 thegeek ggroup 40465200 2006-09-19 12:00 access.log -rw-rw-r– 1 thegeek ggroup 16598163 2006-09-19 12:05 xaa -rw-rw-r– 1 thegeek ggroup 16596545 2006-09-19 12:05 xab -rw-rw-r– 1 thegeek ggroup 7270492 2006-09-19 12:05 xac
Nous avons maintenant divisé nos fichiers texte en 3 fichiers distincts, contenant chacun moins de 60000 lignes, ce qui semblait être un bon nombre à choisir. Le dernier fichier contient le montant restant. Si vous deviez couper ce fichier en deux, vous l’auriez fait:
> split -l 73165 access.log
Et c’est tout ce qu’il ya à faire.