Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 25/05/2012, à 14:06

irnange

[Résolu] extraction d'une sous-chaîne en utilisant l'avant dernier "/"

Bonjour,
  j'aurai besoin d'obtenir la dernière sous-chaîne à partir du path d'un fichier

./dev.eclipse.org/svnroot/modeling/org.eclipse.mdt.papyrus/trunk/extraplugins/epf-richtext/org.eclipse.epf.common.html/.project
./dev.eclipse.org/svnroot/modeling/org.eclipse.mdt.papyrus/trunk/extraplugins/epf-richtext/org.eclipse.epf.common.ui/.project
./dev.eclipse.org/svnroot/modeling/org.eclipse.mdt.papyrus/trunk/extraplugins/alf/org.eclipse.papyrus.operation.editor.xtext/.project
./dev.eclipse.org/svnroot/modeling/org.eclipse.mdt.papyrus/trunk/extraplugins/alf/org.eclipse.papyrus.alf.sdk-feature/.project

Pour les 4 path précédents, je voudrai obtenir :

org.eclipse.epf.common.html/.project
org.eclipse.epf.common.ui/.project
org.eclipse.papyrus.operation.editor.xtext/.project
org.eclipse.papyrus.alf.sdk-feature/.project

J'aimerai éviter de me baser sur le préfixe "org.eclipse" et plutôt utiliser l'avant-dernier "/" pour récupérer ses chaînes, mais je ne sais pas comment faire... une idée?
Merci

Dernière modification par irnange (Le 25/05/2012, à 16:30)


Irnange

Hors ligne

#2 Le 25/05/2012, à 14:14

credenhill

Re : [Résolu] extraction d'une sous-chaîne en utilisant l'avant dernier "/"

hello

$ awk -F/ '{print $(NF-1) FS $NF}' fichier
org.eclipse.epf.common.html/.project
org.eclipse.epf.common.ui/.project
org.eclipse.papyrus.operation.editor.xtext/.project
org.eclipse.papyrus.alf.sdk-feature/.project
$ 

Hors ligne

#3 Le 25/05/2012, à 14:38

irnange

Re : [Résolu] extraction d'une sous-chaîne en utilisant l'avant dernier "/"

Merci beaucoup, ca marche très bien, mais pas comme je voudrais... ca marche sur un fichier qui contient les path originaux...
Je voudrais faire cela dans ce cadre :

#!/bin/bash
for FULL_PATH_FOLDER in `find . -name ".project"`
    do
                  FOLDERNAME= `awk -F/ '{print $(NF-1) FS $NF}' FULL_PATH_FOLDER` # ne marche pas!
        echo $FOLDERNAME
    done

Irnange

Hors ligne

#4 Le 25/05/2012, à 14:58

credenhill

Re : [Résolu] extraction d'une sous-chaîne en utilisant l'avant dernier "/"

et avec

 FOLDERNAME=$(awk -F/ '{print $(NF-1) FS $NF}' <<<$FULL_PATH_FOLDER)

Dernière modification par credenhill (Le 25/05/2012, à 15:06)

Hors ligne

#5 Le 25/05/2012, à 15:14

irnange

Re : [Résolu] extraction d'une sous-chaîne en utilisant l'avant dernier "/"

-> ../substring.sh: 4: Syntax error: redirection unexpected

Dernière modification par irnange (Le 25/05/2012, à 15:16)


Irnange

Hors ligne

#6 Le 25/05/2012, à 15:15

credenhill

Re : [Résolu] extraction d'une sous-chaîne en utilisant l'avant dernier "/"

j'ai modifié ma réponse

Hors ligne

#7 Le 25/05/2012, à 15:19

irnange

Re : [Résolu] extraction d'une sous-chaîne en utilisant l'avant dernier "/"

On s'est croisé... j'ai cru que j'avais mal testé, alors j'ai remodifié la mienne...
ça ne marche pas chez moi :

#!/bin/bash
for FULL_PATH_FOLDER in `find . -name ".project"`
    do
         FOLDERNAME=$(awk -F/ '{print $(NF-1) FS $NF}' <<<$FULL_PATH_FOLDER)
         echo $FOLDERNAME
    done

donne :

../substring.sh: 4: Syntax error: redirection unexpected

Irnange

Hors ligne

#8 Le 25/05/2012, à 15:24

credenhill

Re : [Résolu] extraction d'une sous-chaîne en utilisant l'avant dernier "/"

tu  fais sh script ?
essaye bash script
ou

 FOLDERNAME=$(echo $FULL_PATH_FOLDER | awk -F/ '{print $(NF-1) FS $NF}' )

Hors ligne

#9 Le 25/05/2012, à 16:15

miniSeb

Re : [Résolu] extraction d'une sous-chaîne en utilisant l'avant dernier "/"

grep -oE "[^/]*/[^/]*$"

?

Hors ligne

#10 Le 25/05/2012, à 16:28

irnange

Re : [Résolu] extraction d'une sous-chaîne en utilisant l'avant dernier "/"

@credenhill : merci, les deux fonctionnent! j'ignorai la subtilité bash-sh!
Je n'ai plus qu'à espérer que awk soit installé sur le serveur sur lequel je veux faire tourner mon script!

@miniSeb : merci, ca fonctionne aussi, ce qui me fait une alternative à awk si je n'en dispose pas...

Dès que j'ai 5 minutes, je reviens poster sur ce forum, j'ai d'autres problème avec le script que je suis en train d'essayer d'écrire.
Merci à tous les deux.


Irnange

Hors ligne