Comment faire pour supprimer le dernier répertoire à partir d'un chemin avec sed?
Comment faire pour supprimer le dernier dir avec sed
(pas dirname
), comme ceci:
echo "/dir1/dir2/dir3/dir4" | sed .....
Donc, je voudrais obtenir /dir1/dir2/dir3
.
S'il vous plaît, payez plus d'attention à la mise en forme et la rédaction de vos réponses.
ummm, errrr, des questions? (et les commentaires) 😉
EPIC fail, irrécupérable 😀
ummm, errrr, des questions? (et les commentaires) 😉
EPIC fail, irrécupérable 😀
OriginalL'auteur yael | 2010-07-04
Vous devez vous connecter pour publier un commentaire.
Si c'est une partie du script shell, puis
dirname
sera certainement plus clair.Hein? Pourquoi vous avez écrit?
echo a.b/c.d/e.f | sed 's,/*[^/]\+/*$,,'
retournea.b/c.d
ou il n'est pas dans votre sed version? Ma regexp n'a rien à voir avec.
à tous.OriginalL'auteur przemoc
vous n'avez pas à utiliser des outils externes
$ a="/dir1/dir2/dir3/dir4"
$ echo ${a%/*}
Il ne peut pas être utilisé pour le streaming d'entrée.
OriginalL'auteur ghostdog74
echo "/etc1/etc2/etc3/etc" | sed -e "s//[^/]*$//"
produit
/etc1/etc2/etc3
Essentiellement dépouiller de tout, à la fin, après le dernier slash qui ne contient pas une autre barre oblique.
OriginalL'auteur Shawn D.
vous pouvez utiliser "dirname" commande shell:
OriginalL'auteur Alex