[awk/sed] Récupérer le nom d'un répertoire dans un chemin complet

Récupérer le nom d'un répertoire dans un chemin complet [awk/sed] - Shell/Batch - Programmation

Marsh Posté le 08-07-2008 à 22:02:02    

Sous linux, en utilisant la commande pwd, on récupère le chemin complet du répertoire courant,
ex:

Citation :

$ pwd
/home/igarimasho/documents/java/howto/pdf


A partir de ce résulatt, je voudrais récupérer uniquement le sous répertoire de documents et pas ce qui suit, donc dans notre exemple: java
 
Donc la regexp qui va bien serait un truc du genre: documents/(.+)/
 
Mais je ne sais pas comment mettre cette regexp dans awk ou sed. J'ai essayé avec egrep, mais il me donne: documents/java, alors que moi je veux juste java, enfin ce qui est matché entre parenthèse.
 
Qui touche bien awk ou sed pour me donner le one-liner qui irait bien? Ou bien une option aché de egrep pour afficher seulement le match ()?
 
 
Merci d'avance


Message édité par igarimasho le 08-07-2008 à 22:11:49
Reply

Marsh Posté le 08-07-2008 à 22:02:02   

Reply

Marsh Posté le 10-07-2008 à 13:18:49    

sed 's#.*/documents/\([^/]*\).*#\1#'

Reply

Marsh Posté le 10-07-2008 à 17:19:04    

Merci beaucoup matafan. C'était donc plus compliqué que ce que je pensais.

Reply

Marsh Posté le 12-07-2008 à 11:07:56    

Une autre solution avec expr :  
 

$ var=/home/igarimasho/documents/java/howto/pdf
$ expr "$var" : '.*/documents/\([^/]*\).*'
java
$


 
Jean-Pierre.

Reply

Marsh Posté le 19-07-2008 à 11:08:29    

aigles a écrit :

Une autre solution avec expr :  
 

$ var=/home/igarimasho/documents/java/howto/pdf
$ expr "$var" : '.*/documents/\([^/]*\).*'
java
$


 
Jean-Pierre.


 
T'as vraiment l'air d'aimer expr. Tu le mets à toutes les sauces => http://forum.hardware.fr/hfr/Progr [...] 6402_1.htm
 
Et sinon ? Pour faire une recherche de fichier dans l'arborescence ? => Bah, utilise expr !!!  :D  :D  :D


---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed