Как удалить последний каталог из пути с sed?

Как удалить последний dir с sed (нет dirname), как это:

echo "/dir1/dir2/dir3/dir4" | sed .....

Таким образом, я добрался бы /dir1/dir2/dir3.

8
задан jww 4 April 2018 в 21:02
поделиться

3 ответа

sed 's,/*[^/]\+/*$,,'

Если это часть сценария оболочки, то dirname будет определенно более понятным.

7
ответ дан 5 December 2019 в 04:51
поделиться

echo "/etc1/etc2/etc3/etc" | sed -e "s//[^/]*$//"

produces

/etc1/etc2/etc3

В основном отсекайте все, что находится в конце после последней косой черты и не содержит другой косой черты.

3
ответ дан 5 December 2019 в 04:51
поделиться

вам не нужно использовать внешние инструменты

$ a = "/ dir1 / dir2 / dir3 / dir4"

$ echo $ {a% / *}

28
ответ дан 5 December 2019 в 04:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: