Как извлечь имя файла/папки только из пути?

К сожалению, я не умею использовать регулярное выражение. Если у меня есть такой путь:

/long/path/to/file, мне просто нужно получить file.

Если кто-то предоставит file/, мне просто нужно file.

Если кто-то предоставит /file/, мне все равно понадобится только file.

Я использовал stringr функции в качестве опоры, но это похоже на grep территорию. Помогите, пожалуйста?


person Maiasaura    schedule 13.03.2012    source источник


Ответы (3)


Если я правильно понимаю, вы можете использовать функцию basename.

f <- "/long/path/to/file"
basename(f)
# [1] "file"
person Joshua Ulrich    schedule 13.03.2012
comment
Более элегантное решение, и оно также заботится о завершающих косых чертах. Спасибо большое! - person Maiasaura; 14.03.2012

Что насчет этого?

> path <- "/long/path/to/file"
> require(stringr)
> str_extract(path, "[^/]*$")
[1] "file"
person EDi    schedule 13.03.2012
comment
Что, если мне нужно также убрать косую черту? - person Maiasaura; 14.03.2012

Извините за ответ на очень старый вопрос, но меня привели сюда в поисках способа извлечь только часть каталога из полного имени файла.

Итак, вот как вы извлекаете каталог:

> f <- "/long/path/to/file"
> dirname(f)
[1] "/long/path/to"
person Flo    schedule 29.01.2021