我想要分别获取文件名(不含扩展名)和扩展名。
到目前为止,我找到的最佳解决方案是:
NAME=`echo "$FILE" | cut -d'.' -f1`
EXTENSION=`echo "$FILE" | cut -d'.' -f2`
这是错误的,因为如果文件名包含多个 .
字符,则无法正常工作。例如,如果我有a.b.js
,它会考虑a
和b.js
,而不是a.b
和js
。可以使用以下Python代码轻松解决:file, ext = os.path.splitext(path)
但如果可能的话,我不想为此启动Python解释器。
有更好的主意吗?
extension="{$filename##*.}"
!请将$
符号移动到大括号外面,示例正确的写法为: 正确示例:extension="${filename##*.}"
。 - Krista Kos.path.splitext
... - Peter Gibsonxyzzy.tar.gz
的扩展名是什么?或者plugh.cfg.saved
呢?换句话说,您是将扩展名视为简单的技术问题还是语义问题? - paxdiablo