AWK pour Windows : Problème aléatoire et étrange

Fermé
Ham1987 Messages postés 4 Date d'inscription lundi 7 mars 2016 Statut Membre Dernière intervention 8 mars 2016 - Modifié par Ham1987 le 7/03/2016 à 18:48
Ham1987 Messages postés 4 Date d'inscription lundi 7 mars 2016 Statut Membre Dernière intervention 8 mars 2016 - 8 mars 2016 à 10:40
Bonjour,

En utilisant AWK (1.3.3) pour Windows, nous avons rencontré un problème aléatoire et étrange.

Nous utilisons AWK pour découper des fichiers csv afin de les intégrer plus facilement dans notre application. Les fichiers arrivent toutes les 9 minutes et sont découpés puis chargés et cela toute la journée. Le problème est que certaines fois les fichiers ne sont pas découpés, cela peut arriver une ou plusieurs fois dans la même journée ou aucune fois.

Est-ce que quelqu’un a déjà rencontré ce problème et a une idée de la cause ?

Utilisation :
REM arg1 = file to split
REM arg2 = max size
REM arg3 = destination folder
REM arg4 = AWK folder
REM If file arg1 size is smaller than arg2 then use column 1 else use column 3

cd %3 & if %~z1 LSS %2 (%4awk -F; "{print >> $1\".csv\"}" %1) else (%4awk -F; "{print >> $3\".csv\"}" %1)


Merci pour vos retours.
A voir également:

2 réponses

Utilisateur anonyme
7 mars 2016 à 22:42
salut,

"découper" ? selon quel critère ? je ne vois qu'une redirection vers un fichier dont le nom est le premier ou le deuxième champ du fichier.
le reste je ne le comprends pas : je ne "parle" pas ce langage.

une observation fine (avec
od -c
?) du fichier, qui n'est pas "découpé", pourrait montrer des différences, qui justifieraient ce comportement erratique.
0
Ham1987 Messages postés 4 Date d'inscription lundi 7 mars 2016 Statut Membre Dernière intervention 8 mars 2016
8 mars 2016 à 09:55
Salut,

Merci pour votre retour.

C'est un fichier .bat qui contient ce code :

Si la taille du fichier est inférieure à la taille max alors on découpe selon le contenu de la colonne 1 sinon selon la colonne 3, d'où le $1 et $3 devant la commande awk.

Ce qui est étrange, c'est que quand je remets les fichiers non découpés dans le répertoire d'import, ils sont découpés, comme s'il y avait un évènement Windows qui empêchait le découpage la première fois.
0
UnGars > Ham1987 Messages postés 4 Date d'inscription lundi 7 mars 2016 Statut Membre Dernière intervention 8 mars 2016
8 mars 2016 à 10:09
Salut,
Les fichiers arrivent toutes les 9 minutes et sont découpés[...]
comme s'il y avait un évènement Windows qui empêchait le découpage la première fois.
Es-tu sûr que les fichiers sont complètement transférés lors de leur traitement ?.
Ça pourrait être une des causes de leur non-découpage ;-\
0
Ham1987 Messages postés 4 Date d'inscription lundi 7 mars 2016 Statut Membre Dernière intervention 8 mars 2016 > UnGars
8 mars 2016 à 10:40
Oui, les fichiers sont bien transférés, le .bat de découpage n'est exécuté qu'une fois le fichier est bien transféré.
0
dubcek Messages postés 18724 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 15 mai 2024 5 615
8 mars 2016 à 08:24
hello
sur Windows, je passerais par un fichier de commande plutot que par la ligne de commande
C:> type f1.awk
BEGIN {FS=";"} {print >> $1 ".csv"}

C:> type f2.awk
BEGIN {FS=";"} {print >> $3 ".csv"}

cd %3 & if %~z1 LSS %2 (%4awk -f f1.awk %1) else (%4awk -f f2.awk %1)

0
Ham1987 Messages postés 4 Date d'inscription lundi 7 mars 2016 Statut Membre Dernière intervention 8 mars 2016
8 mars 2016 à 09:56
Merci!

Vous pensez que cela a un impact de passer par un fichier de commande?
J'essaierais ça.
0