Ogni espressione regolare è formata da una parte "fissa" (in minuscolo) e una parte "variabile" (in MAIUSCOLO), per esempio in
Codice: Seleziona tutto
/usr/local/share/DIR/*
DIR è la parte variabile
Per ogni stringa, devo stabilire se matcha una delle espressioni regolari, e in tal caso ottenere la parte variabile.
Ad esempio, la stringa "/usr/local/share/misqui/texture/dr.bmp" matcha l'espressione regolare di prima, quindi devo salvare in una variabile la parola "misqui" (corrispondente a DIR dell'espressione regolare).
Il matching è facile, forse ci riesco anche da solo:
Codice: Seleziona tutto
grep /usr/local/share/*
Il problema è l'estrapolazione della parte variabile che non so come si faccia.
Mi potreste dare una mano?
Vi posto altri esempi di pattern commentati:
Codice: Seleziona tutto
/usr/local/include/FILE
Codice: Seleziona tutto
/usr/local/include/DIR/*
Codice: Seleziona tutto
/usr/local/share/applications/FILE.desktop
Codice: Seleziona tutto
/usr/local/share/man/man[1..8]/FILE
Per esempio, in /usr/local/share/man/man1/ciao FILE=ciao
/usr/local/share/man/man4/arrivederci FILE=arrivederci
/usr/local/share/man/man9/ciao non matcha
e così via
Grazie in anticipo per le risposte.
Per ora va bene anche una cascata di "if" differente per ogni espressione regolare, poi vedrò se c'è verso eseguire per tutte le stesse istruzioni.

