#1 Le 03/08/2026, à 19:28
- O_20_100_O

(Résolu) Tronquer les libellés d'opérations d'un fichier OFX
Bonjour,
L'application Grisbi est capable d'affecter automatiquement des opérations à une "catégorie", en se basant sur le champ "tiers".
Quand j'importe les opés de ma banque, le champ "<NAME>" du fichier OFX téléchargé est copié dans "tiers" de Grisbi.
C'est un début, mais pas parfait car cette zone contient des variables comme la date et une autre référence.
Si, avant d'importer le fichier OFX, je pouvais éliminer les données parasites de <NAME>, alors Grisbi devrait reconnaître le tiers et affecter automatiquement la catégorie habituelle.
Je cherche donc à quelle moulinette je pourrais faire passer le fichier avant de l'importer.
Après les données d'en-tête, chaque opération est ainsi :
<STMTTRN>
<TRNTYPE>OTHER
<DTPOSTED>20260723
<TRNAMT>-29.13
<FITID>864xxxxxx
<NAME>X6666 AAP*BAC SUPER U machin 21/07
<MEMO>Paiement par carte xxxxxxxxxxxxxxxx 21/07
</STMTTRN>Dans ce cas, il faudrait que "X6666 AAP*BAC SUPER U machin 21/07" devienne juste "AAP*BAC SUPER U machin"
Après analyse de divers enregistrements, dans <NAME>, il faut supprimer la première zone et la dernière.
Dernière modification par O_20_100_O (Le 04/08/2026, à 11:57)
Hors ligne
#2 Le 03/08/2026, à 19:45
- Watael

Re : (Résolu) Tronquer les libellés d'opérations d'un fichier OFX
optimisable/correctible
sed -E '/^<NAME>/s/>[^ ]* (.*) .*/>\1/'nany ? ![]()
Dernière modification par Watael (Le 03/08/2026, à 19:46)
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#3 Le 03/08/2026, à 20:08
- O_20_100_O

Re : (Résolu) Tronquer les libellés d'opérations d'un fichier OFX
Merci Watael,
Comment je peux utiliser cette commande ? Prendre le fichier en entrée et appliquer ?
Hors ligne
#4 Le 03/08/2026, à 20:19
- nany

Re : (Résolu) Tronquer les libellés d'opérations d'un fichier OFX
Bonjour,
nany ?
Pas mieux.
Comment je peux utiliser cette commande ? Prendre le fichier en entrée et appliquer ?
sed -E '/^<NAME>/s/>[^ ]* (.*) .*/>\1/' /le/fichier/OFXSi c’est bon et que tu veux modifier le fichier directement :
sed -Ei '/^<NAME>/s/>[^ ]* (.*) .*/>\1/' /le/fichier/OFXHors ligne
#5 Le 03/08/2026, à 20:30
- Watael

Re : (Résolu) Tronquer les libellés d'opérations d'un fichier OFX
et si tu en a plusieurs à modifier :
sed -sEi '/^<NAME>/s/>[^ ]* (.*) .*/>\1/' /che/min/fichiers/*.ofxsi les OFX ont pour extension .ofx
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#6 Le 03/08/2026, à 20:59
- O_20_100_O

Re : (Résolu) Tronquer les libellés d'opérations d'un fichier OFX
Merci à vous, ça fait bien son office.
Mais ces enf**** ne font pas deux jours de suite avec la même logique. Sur une autre journée, les <NAME> ne sont pas faits tout à fait pareil ![]()
Cela remet en cause ma demande, il me faut affiner ... ou passer à autre chose ![]()
Dernière modification par O_20_100_O (Le 03/08/2026, à 20:59)
Hors ligne
#7 Le 03/08/2026, à 21:28
- Watael

Re : (Résolu) Tronquer les libellés d'opérations d'un fichier OFX
ouaip, affiner. 'faut voir les variantes...
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#8 Le 04/08/2026, à 07:48
- O_20_100_O

Re : (Résolu) Tronquer les libellés d'opérations d'un fichier OFX
Bon, on va considérer que le contre-exemple vient d'un jour où ils ont pété les plombs, mais c'était gratiné :
<NAME>PAIEMENT PAR CARTE X1111 xxx E
<MEMO>Paiement par carte PAIEMENT PAR CARTE X1111 xxx EXPRESS machin 28/04Les autres fichiers sont sur le même principe que mon premier exemple.
Et comme cette commande enlève bien ce qu'il faut là où il faut pour les paiements par carte, il me reste à voir :
* quoi faire pour les autres types d'opérations
* comment lier ce traitement à l'importation des fichiers de la banque.
Pour le moment :
sed -E '/^<NAME>/s/>[^ ]* (.*) .*/>\1/' aa.ofx > bb.ofxDernière modification par O_20_100_O (Le 04/08/2026, à 08:29)
Hors ligne
#9 Le 04/08/2026, à 08:54
- nany

Re : (Résolu) Tronquer les libellés d'opérations d'un fichier OFX
Bonjour,
Pour le moment :
sed -E '/^<NAME>/s/>[^ ]* (.*) .*/>\1/' aa.ofx > bb.ofx
Pourquoi faire une redirection alors que l’option i permet de traiter directement dans le fichier ?
Si tu veux une sauvegarde du fichier, il suffit d’ajouter un suffixe derrière cette option, par exemple .original :
sed -Ei.original '/^<NAME>/s/>[^ ]* (.*) .*/>\1/' aa.ofxTu auras alors le fichier aa.ofx transformé que tu pourras importer et un fichier de sauvegarde aa.ofx.original.
Hors ligne
#10 Le 04/08/2026, à 11:49
- O_20_100_O

Re : (Résolu) Tronquer les libellés d'opérations d'un fichier OFX
Tu auras alors le fichier aa.ofx transformé que tu pourras importer et un fichier de sauvegarde aa.ofx.original.
Merci c'est parfait.
Une analyse de plusieurs mois d'opérations montre que la simple suppression de début et de la fin de NAME ne peut pas fonctionner. Il faut voir autrement.
Dans quelques cas, <MEMO> n'est pas renseigné, là on touche pas à <NAME>.
Si <MEMO> n'est pas vide, alors son contenu est toujours meilleur que celui de <NAME>, mais Grisbi se base sur ce dernier pour remplir "Tiers".
L'idéal serait de refaire <NAME> à partir de <MEMO> en excluant tout ce qui peut varier d'une opération à l'autre pour un même tiers.
Peut-être à partir d'une liste de termes à supprimer.
Dernière modification par O_20_100_O (Le 04/08/2026, à 11:59)
Hors ligne
#11 Le 04/08/2026, à 14:12
- O_20_100_O

Re : (Résolu) Tronquer les libellés d'opérations d'un fichier OFX
Il fallait d'abord creuser un peu plus ce que sait faire Grisbi, on peut l'utiliser pour normaliser les tiers et regrouper les
* toto 01/01/26
* toto 03/02/26
....
sur juste toto !
Ceci fait, on peut aussi créer des règles d'importation qui ne peuvent travailler que sur <NAME> et ignorent <MEMO>. Si ça ne suffit pas, il faudra filtrer avant importation.
Hors ligne