【发布时间】:2016-02-26 18:42:30
【问题描述】:
我正在尝试输出文件路径的部分内容,但删除了文件名和路径的某些级别。
目前我有一个 for 循环做很多事情,但我正在从完整的文件路径创建一个变量,并想去掉一些位。
例如
for f in (find /path/to/my/file - name *.ext)
给我
$f = /path/to/my/file/filename.ext
我想做的是 printf/echo 一些变量。我知道我能做到:
printf ${f#/path/to/}
my/file/filename.ext
但我想删除文件名并最终得到:
my/file
有什么简单的方法可以做到这一点而不必使用 sed/awk 等?
【问题讨论】:
-
尝试
${f%/*}仅删除文件名(类似于dirname内置)。 (您应该确保在删除之前有超过 1 个/或在之后检查零长度)