Я пытаюсь вывести части пути к файлу, но удаляю имя файла и некоторые уровни пути.bash отображает части переменной, которая содержит путь
В настоящее время у меня цикл for делает много вещей, но я создаю переменную из полного пути к файлу и хотел бы удалить некоторые биты.
Например
for f in (find /path/to/my/file - name *.ext)
даст мне
$f = /path/to/my/file/filename.ext
То, что я хочу сделать, это Printf/эхом некоторые из этих переменных. Я знаю, что я могу сделать:
printf ${f#/path/to/}
my/file/filename.ext
Но я хотел бы, чтобы удалить имя файла и в конечном итоге с:
my/file
Есть ли простой способ сделать это без использования СЭД/AWK и т.д.?
Возможный дубликат [Получить путь к файловому каталогу из пути к файлу] (http://stackoverflow.com/quest ion/6121091/get-file-directory-path-from-filepath) –
Попробуйте '$ {f%/*}' удалить только имя файла (аналогично встроенному 'dirname'). (Вы должны убедиться, что перед удалением осталось больше 1 '/' или после этого установите нулевую длину) –