如何只获取没有扩展名和路径的文件名?
以下内容没有给我扩展名,但我仍然附加了路径:
source_file_filename_no_ext=${source_file%.*}
许多类 UNIX 操作系统都有一个basename
出于非常相似的目的可执行文件(并且dirname
对于路径):
pax> full_name=/tmp/file.txt
pax> base_name=$(basename ${full_name})
pax> echo ${base_name}
file.txt
不幸的是,这只是给你文件名,包括扩展名,因此您还需要找到一种方法来删除它。
因此,既然你无论如何都必须这样做,你不妨找到一种可以剥离路径的方法and扩展名。
一种方法可以做到这一点(这是一个bash
-唯一的解决方案,不需要其他可执行文件):
pax> full_name=/tmp/xx/file.tar.gz
pax> xpath=${full_name%/*}
pax> xbase=${full_name##*/}
pax> xfext=${xbase##*.}
pax> xpref=${xbase%.*}
pax> echo "path='${xpath}', pref='${xpref}', ext='${xfext}'"
path='/tmp/xx', pref='file.tar', ext='gz'
那个小片段集xpath
(文件路径),xpref
(文件前缀,您具体要求的内容)和xfext
(文件扩展名)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)