bonjour,
j'ai une ligne
Code : Sélectionner tout - Visualiser dans une fenêtre à part
foo,mkdirhier(bar),machin,dog:xorg
qui peut être également
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 ?

beaucoup