Discussion:
regrouper des fichiers plats puis éclater un fichier
(trop ancien pour répondre)
jajah
2022-06-14 09:54:15 UTC
Permalink
Bonjour,
Je me permets de vous écrire pour solliciter votre aide et ne sachant pas si u
script Perl ou Python serait le mieux "adapté/simple" (voir même du VB!)
Mon besoin est le suivant :
I - Phase 1 : génération d'un fichier à envoyer
1- parcourir un répertoire spécifique et lister les fichiers plats qu'i
contient (csv ou txt) et qui ont tous la même structure (11 champs séparés pa
des points virgules)
2- concaténer/regrouper ces fichiers en un seul et lui donner un nom de typ
ABC-123
II- Phase 2 : découper un fichier reçu
1- découper un fichier (3 champs) en plusieurs fichiers selon un critère
savoir le dernier champ (exp ABCDE1234)
2- enregistrer les fichiers générés avec un nom contenant le critère d
découpage (toto_ABC-123.csv) dans un répertoire spécifique

En vous remerciant par avance pour vos aides
Bien à vous
Marc SCHAEFER
2022-06-14 10:17:50 UTC
Permalink
contient (csv ou txt) et qui ont tous la même structure (11 champs séparés par
des points virgules)
2- concaténer/regrouper ces fichiers en un seul et lui donner un nom de type
ABC-123
un simple cat du shell bash pourrait-il suffire?

cat > ABC-123 $(find . -name '*.csv'; find . -name '*.txt)

ou si par répertoire:

for i in *
do
cat > $(basename $i)-ABC-123 $(find . -name '*.csv'; find . -name '*.txt)
done

Bash est désormais même disponible sous Microsoft (Git bash p.ex.).
II- Phase 2 : découper un fichier reçu
1- découper un fichier (3 champs) en plusieurs fichiers selon un critère à
savoir le dernier champ (exp ABCDE1234)
Là par contre, effectivement, Perl semble une bonne idée.
jajah
2022-06-14 14:06:11 UTC
Permalink
Post by Marc SCHAEFER
jajah
contient (csv ou txt) et qui ont tous la même structure (11 champs séparés par
des points virgules)
2- concaténer/regrouper ces fichiers en un seul et lui donner un nom de type
ABC-123
un simple cat du shell bash pourrait-il suffire?
cat > ABC-123 $(find . -name '*.csv'; find . -name '*.txt)
for i in *
do
cat > $(basename $i)-ABC-123 $(find . -name '*.csv'; find . -name '*.txt)
done
Bash est désormais même disponible sous Microsoft (Git bash
p.ex.).
II- Phase 2 : découper un fichier reçu
1- découper un fichier (3 champs) en plusieurs fichiers selon un
critère Í 
savoir le dernier champ (exp ABCDE1234)
LÍ  par contre, effectivement, Perl semble une bonne idée.
Bonjour,
Tout d'abord merci pour cette réponse.
Effectivement, c'est simple et efficace pour traiter de cette partie I, merci
jajah
2022-06-14 14:09:47 UTC
Permalink
Post by Marc SCHAEFER
jajah
contient (csv ou txt) et qui ont tous la même structure (11 champs séparés par
des points virgules)
2- concaténer/regrouper ces fichiers en un seul et lui donner un nom de type
ABC-123
un simple cat du shell bash pourrait-il suffire?
cat > ABC-123 $(find . -name '*.csv'; find . -name '*.txt)
for i in *
do
cat > $(basename $i)-ABC-123 $(find . -name '*.csv'; find . -name '*.txt)
done
Bash est désormais même disponible sous Microsoft (Git bash
p.ex.).
II- Phase 2 : découper un fichier reçu
1- découper un fichier (3 champs) en plusieurs fichiers selon un
critère Í 
savoir le dernier champ (exp ABCDE1234)
LÍ  par contre, effectivement, Perl semble une bonne idée.
Bonjour,
Merci pour cette réponse rapide.
Effectivement, c'est simple et efficace pour répondre au besoin de la partie I
merci
Stephane Tougard
2022-06-14 11:38:07 UTC
Permalink
Post by jajah
Bonjour,
Je me permets de vous écrire pour solliciter votre aide et ne sachant pas si un
script Perl ou Python serait le mieux "adapté/simple" (voir même du VB!)
I - Phase 1 : génération d'un fichier à envoyer
1- parcourir un répertoire spécifique et lister les fichiers plats qu'il
contient (csv ou txt) et qui ont tous la même structure (11 champs séparés par
des points virgules)
2- concaténer/regrouper ces fichiers en un seul et lui donner un nom de type
ABC-123
II- Phase 2 : découper un fichier reçu
1- découper un fichier (3 champs) en plusieurs fichiers selon un critère à
savoir le dernier champ (exp ABCDE1234)
2- enregistrer les fichiers générés avec un nom contenant le critère de
découpage (toto_ABC-123.csv) dans un répertoire spécifique
En vous remerciant par avance pour vos aides
Bien à vous
Je suis pas bien sur de comprendre la question. N'importe quel langage
informatique peut faire une tache aussi simple.
jajah
2022-06-14 14:03:43 UTC
Permalink
On 2022-06-14, jajah
Post by jajah
Bonjour,
Je me permets de vous écrire pour solliciter votre aide et ne sachant pas si un
script Perl ou Python serait le mieux "adapté/simple" (voir
même du VB!)
I - Phase 1 : génération d'un fichier Í  envoyer
1- parcourir un répertoire spécifique et lister les fichiers plats qu'il
contient (csv ou txt) et qui ont tous la même structure (11 champs séparés par
des points virgules)
2- concaténer/regrouper ces fichiers en un seul et lui donner un nom de type
ABC-123
II- Phase 2 : découper un fichier reçu
1- découper un fichier (3 champs) en plusieurs fichiers selon un
critère Í 
savoir le dernier champ (exp ABCDE1234)
2- enregistrer les fichiers générés avec un nom contenant
le critère de
découpage (toto_ABC-123.csv) dans un répertoire
spécifique
En vous remerciant par avance pour vos aides
Bien Í  vous
Je suis pas bien sur de comprendre la question. N'importe quel langage
informatique peut faire une tache aussi simple.
Bonjour,
J'ai de notions avancées dans vb mais loin d'être bon, j'ai réalisé une autr
partie avec quelques difficultés mais je ne sais pas par quel bout attaquer c
besoin complémentaire (relativement urgent et nous n'avons pas de développeurs
je m'improvise!)...
Je pensais qu'un script perl serait plus facile!
jajah
2022-06-20 20:01:20 UTC
Permalink
Post by jajah
Bonjour,
Je me permets de vous écrire pour solliciter votre aide et ne sachant
pas si un script Perl ou Python serait le mieux
"adapté/simple" (voir même du VB!)
I - Phase 1 : génération d'un fichier à envoyer
1- parcourir un répertoire spécifique et lister les fichiers
plats qu'il contient (csv ou txt) et qui ont tous la même structure (11
champs séparés par des points virgules)
2- concaténer/regrouper ces fichiers en un seul et lui donner un nom de
type ABC-123
II- Phase 2 : découper un fichier reçu
1- découper un fichier (3 champs) en plusieurs fichiers selon un
critère à savoir le dernier champ (exp ABCDE1234)
2- enregistrer les fichiers générés avec un nom contenant
le critère de découpage (toto_ABC-123.csv) dans un
répertoire spécifique
En vous remerciant par avance pour vos aides
Bien à vous
Bonjour,
J'avais répondu à deux reprises mais celles-ci n'apparaissent pas!
Effectivement, une simple commande dos résous une grande partie de la phase
mais j'ai un entête que j'aimerai garder uniquement depuis le premier fichie
mais le supprimer sur les autres. une solutions svp?
Pour la partie 2; auriez-vous une solution svp?
Je souhaite :
1- découper un fichier (3 champs) en plusieurs fichiers selon un critère
savoir le dernier champ (exp ABC-123, ABC-456)
2- enregistrer les fichiers générés avec un nom contenant le critère d
découpage (toto_ABC-123.csv, toto_ABC-456) dans un répertoire spécifique.
Merci par avance pour votre aide
Marc SCHAEFER
2022-06-20 20:09:50 UTC
Permalink
mais j'ai un entête que j'aimerai garder uniquement depuis le premier fichier
mais le supprimer sur les autres. une solutions svp?
# supprimer la première ligne
tail +2 fichier

donc, quelque chose comme

(cat fichier1 # celui dont on veut maintenir l'entête
tail +2 fichier2 # celui non) > fichier
Pour la partie 2; auriez-vous une solution svp?
Pour cela il faudra un peu de code: un tableau associatif nom => handle
de fichier notamment.

Continuer la lecture sur narkive:
Loading...