Re: traitement de fichier long avec awk ou autre

Page principale

Répondre à ce message
Auteur: guilde.nt
Date:  
À: guilde
CC: guilde
Sujet: Re: traitement de fichier long avec awk ou autre
> exemple
> "4569111vt" occurrence 1 -- zone 18 : 452
> "4569111vt" occurrence 2 -- zone 18 : 123
> .......
> "4569111vt" occurrence X -- zone 18 : 007
>
> "4569111vt" pourrait etre un parametre, la zone 18 aussi ainsi que sa
> longueur, et le fichier à tester.


Prenons ceci comme modèle :
- entrée : "abXY12345XY6789" ;
- séparateur "XY", suivi d'un champ de longueur variable dont on veut
garder les caractères 2, 3 et 4.

echo "abXY12345XY6789" | awk -v s="XY" '1 {n=split($0, a, s); for (i=2; i<=n; i++) a[i]=substr(a[i], 2, 3)}'

Après split() : n=3 ; a[] = ["ab", "12345", "6789"] ; a[1] n'est pas
intéressant.
Si le séparateur devient une expression régulière, par exemple deux
majuscules quelconques, il suffit de remplacer s : s="[A-Z]{2}".

-Nicolas T.