Bonjour à tous,
Pour mon travail, je dois découper un gros fichier texte (477 Mo) en plusieurs fichiers plus petits.
Le fichier de départ est au format csv (séparateur ";" donc) et chaque ligne commence avec un numéro à 9 chiffres dont les trois premiers sont le département. Par exemple 001000021 correspond à une ligne sur le département 001.
Je cherche à découper le fichier par département donc pour générer des fichiers unitaires 001.txt, 002.txt etc... contenant toutes les lignes sur les départements.
J'ai utilisé la commande suivante sous Cygwin (je suis sous Windows...):
Code : Sélectionner tout - Visualiser dans une fenêtre à part awk -f split.awk fichiersource.txt
et mon fichier split.awk contient:
etc...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 /^001/ {print >> "001.txt"} /^002/ {print >> "002.txt"} /^003/ {print >> "003.txt"} /^004/ {print >> "004.txt"} /^005/ {print >> "005.txt"}
ça marche "presque" bien: pour certains départements, la découpe s'arrête en plein milieu d'une ligne (toujours la même), et les lignes qui suivent qui font pourtant bien parti du même département ne sont pas extraites...
ça fait deux heures que je cherche en vain, si quelqu'un comprend, je lui serais très reconnaissant de m'aider !
Merci d'avance
Partager