découpage de fichier - Shell/Batch - Programmation
Marsh Posté le 25-07-2007 à 21:15:30
Peux tu expliciter quelle logique suit le découpage.
Jean-Pierre.
Marsh Posté le 26-07-2007 à 10:36:23
Désolé, j'ai été un peu vite car je n'avais pas le temps d'expliquer plus en détaille hier.
en fait je dois découper mon fichier en fonction du premier caractère de chaque ligne. A chaque fois que je rencontre un 0 je dois créer un nouveau fichier (il sera nommé avec le 2ème,3eme et 4eme caractère de cette même ligne), insèrer cette même ligne dans le fichier créé et ensuite insèrer les lignes qui suivent jusqu'à rencontrer de nouveau 0 en début de ligne, et là, création d'un nouveau fichier, etc...
Merci à tous pour votre aide.
Marsh Posté le 26-07-2007 à 10:51:11
Une possible solution avec awk :
awk ' |
Jean-Pierre.
Marsh Posté le 26-07-2007 à 19:50:07
Merci Jean-Pierre,
c'est presque bon, il me manque la ligne avec le 0 en début de ligne
peux-tu me dire pourquoi?
merci.
Marsh Posté le 26-07-2007 à 23:26:38
Il suffit de supprimer l'instruction next :
awk ' |
Jean-Pierre.
Marsh Posté le 27-07-2007 à 10:11:20
Oui, je m'en suis apercu après avoir posté, merci bcp.
j'ai un dernier souci :
j'ai inclus le awk dans un script qui utilise des variables.
dans ce script j'ai une variable "nomFic" que je souhaiterai concaténer pour la définition de la variable "file" du awk.
faire du genre : file = substr($0, 2, 3)||$nomFic;
mais ça ne marche pas, vous avez une idée, je vais continuer à chercher de mon coté.
Encore merci Jean-Pierre.
Marsh Posté le 27-07-2007 à 10:35:05
Le plus propre est de définir une variable au niveau awk :
awk -v FileSuffix="$nomfic" ' |
Jean-Pierre.
Marsh Posté le 30-07-2007 à 16:25:21
Merci bcp Jean-Pierre, ça fonctionne très bien, j'espère un jour pouvoir te faire concurence sur UNIX... c'est pas demain la veille.
Encore merci pour ton aide et ta disponibilité.
Marsh Posté le 30-07-2007 à 18:16:26
oups j'ai encore une question,
En effet, cette manipulation fonctionne très bien lorsque l'on reste dans le même répertoire, mais si le repertoire cible des fichiers générés est différent du repertoire du fichier source, comme dois-je faire stp?
merci pour ta réponse.
Marsh Posté le 30-07-2007 à 19:05:08
Deux possibilités :
cd /path/to/result/dir/ |
Ou:
awk -v FileSuffix="$nomfic" -v FileDir='/path/to/result/dir/ ' |
Jean-Pierre.
Marsh Posté le 06-08-2007 à 10:47:40
Merci bcp, ça marche très bien.
Désolé de la réponse tardive, mais les vacances passent avant tout.
merci encore.
à bientôt.
Marsh Posté le 25-07-2007 à 19:15:19
Bonjour,
je souhaiterai découper un fichier en plusieur fichiers, je m'explique :
j'ai un fichier avec plusieurs lignes :
0xxxxxxxxx
122xxxxxxx
322xxxxxxx
422xxxxxxx
122xxxxxxx
322xxxxxxx
422xxxxxxx
322xxxxxxx
422xxxxxxx
0555xxxxxx
123xxxxxxx
323xxxxxxx
423xxxxxxx
et je souhaiterai le découper en 2 fichiers de la façon suivante :
1er fichier nommé 444:
0444xxxxxx
122xxxxxxx
322xxxxxxx
422xxxxxxx
122xxxxxxx
322xxxxxxx
422xxxxxxx
322xxxxxxx
422xxxxxxx
2eme fichier nommé 555:
0555xxxxxx
123xxxxxxx
323xxxxxxx
423xxxxxxx
pourriez-vous m'aider svp,
merci bcp d'avance.