Mettre une parenthèse dans une regex
bonjour,
j'ai une ligne
Code:
foo,mkdirhier(bar),machin,dog:xorg
qui peut être également
Code:
foo,mkdirhier(bar;truc;bidule),machin,dog:xorg
mon but est de trouver mkdirhier dedans et de regarder s'il est suivi d'une parenthèse ou pas et d'extraire ce qu'il y a dans la parenthèse. pour choper mkdirhier, je le fais dans le for avec un match
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| #!/usr/bin/awk -f
{
split ($0, tmp, ":")
package[1]=tmp[2]
print("paquet : ",package[1])
nb_fichier = split(tmp[1],fichiers,",")
for ( i=1 ; i<=nb_fichier ; ++i ) {
print fichiers[i]
where = match(fichiers[i],"^mkdirhier")
}
} |
ensuite, je peux faire un if pour tester si match a trouvé quelque chose ou pas. mon problème est pour la regex. je voudrais chercher si mkdirhier est suivi d'un lot de parenthèse ou pas. j'ai essayé la regex "^mkdirhier(.*)" mais ça ne marche pas, ça me dit qu'il trouve même s'il n'y a rien :( j'ai essayé d'en mettre une seule et il me dit erreur de syntaxe. j'ai essayé d'échapper les parenthèses (même si ce ne sont pas des caractères spéciaux) mais ça n'a pas marché non plus :(
bref, j'ai plus trop d'idées.
est-ce que c'est faisable et si oui, comment ?
:merci: beaucoup ;)