Afficher un message
Vieux 23/02/2006, 11h26   #3
Stephane Chazelas
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut 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
  Réponse avec citation
 
Page generated in 0,06412 seconds with 9 queries