Mac, Console – Fractionner des fichiers volumineux sous Mac avec la commande split
Voilà typiquement l’article fourre-tout, on pourrait même dire dépotoir, dans lequel va être placé une succession de pratiques, bonnes ou mauvaises, à priori là n’est pas la question. L’idée est de passer par le plus court chemin pour manipuler un volume conséquent de données notamment issu de fichier .sql, .csv, .txt
avec peu de moyens à part un simple portable et peu de connaissances en programmation.
Pourquoi de telles contraintes ? Eh bien, cette ensemble assez disparate vous sera peut-être utile notamment si vous êtes amenés à faire des migrations de données. Par exemple, si vous souhaitez migrer des données utilisateurs d’un système d’authentification unique (SSO) à un autre. C’est en l’espèce le travail à effectuer.
Cette mutation des données se révèle parfois compliqué, non en raison de la complexité de la tache à savoir transposer des données d’un format dans un autre, mais pour deux raisons principales plus incongrues :
- Le volume important des données à traiter qui vous interdit souvent de gérer cet ensemble dans un environnement ou un logiciel unique genre Excel ou dans la console MySQL.
- La réticence justifiée ou injustifiée des prestataires, des développeurs à manipuler ces données étant donné l’importance critique à maintenir la cohérence et l’intégrité de ces mêmes données. En clair, une fois établi, le scénario de migration de données à opérer, vous avez de forte chance de vous retrouver seul à la manœuvre.
Dans le cas qui nous concerne, il a fallu fractionner un volumineux fichier .sql
rempli de donnés sous forme de Universally Unique IDentifier (UUID) en plusieurs fichiers .sql
de 5000 lignes chacun. Puis, il a fallu ensuite retraiter chacune des tables de 5000 UUID à l’aide de PHP afin de générer des requêtes CURL. Ces requêtes CURL ont été passées à une API par groupe à raison de 5 lignes par fichier .sh
.
Ce script basique nous a donc été utile deux fois, pour fractionner le fichier .sql
puis un fichier .txt
pour fractionner le tout sous forme .sh
Le script est disponible sur github
https://github.com/bflaven/BlogArticlesExamples/tree/master/split_file
Capture du script dans la console
Capture du script dans la console
En savoir plus
- 10 examples of split command in Unix
http://www.theunixschool.com/2012/10/10-examples-of-split-command-in-unix.html - Introduction aux scripts shell
http://doc.ubuntu-fr.org/tutoriel/script_shell - All commands | commandlinefu.com
http://www.commandlinefu.com/commands/browse - Make Quick Multi File Files w/ Terminal
http://www.mactricksandtips.com/2008/07/make-quick-multi-file-files-w-terminal.html - Utiliser mysql en ligne de commande
https://technique.arscenic.org/lamp-linux-apache-mysql-php/mysql-le-serveur-de-bases-de-donnees/article/utiliser-mysql-en-ligne-de - Ruby en vingt minutes
https://www.ruby-lang.org/fr/documentation/quickstart/ - Authentification unique
https://fr.wikipedia.org/wiki/Authentification_unique