Re: Cration d'un script de découpe d'un fichierpar chaîne de carcatère
On 23 Feb 2006 02:22:38 -0800, Laurent wrote:
> Bonjour,
>
> Je dois réaliser un script qui découpe un fichier selon des chaînes
> de caractères de début et de fin.
>
> Plus clairement, un exemple :
>
> <?xml .....
> ....
> <A0="18"/>
> <A1="19"/>
> <A2="20"/>
> ...
> </toto>
> <?xml .....
> ....
> <A0="35"/>
> <A1="21"/>
> <A2="5"/>
> ...
> </toto>
> ...
>
> Et pour simplifier, le nom de chaque fichier serait par exmple :
> nom_18_19_20 et nom_35_21_5
[...]
awk '
!inside && /^<\?xml/ {
inside = 1
content = ""
split("XX_XX_XX", a, "_")
}
!inside {next}
{content = content $0 "\n"}
match($0, /^<A[0-2]="[0-9]+"/) {
i = substr($0, RSTART+2, 1)
n = substr($0, RSTART+5, RLENGTH-6)
a[i] = n
next
}
/^<\/toto>/ {
file = "mon_" a[0] "_" a[1] "_" a[2]
printf "%s", content > file
close(file)
content = ""
inside = 0
}'
Ce n'est pas garanti de marcher si les fichiers resultat peuvent
faire plus de 2ko (ca marchera avec GNU awk, toutefois).
--
Stephane
|