我有像/dir/dir2/file.ext1.ext2
这样的文件名,我希望获得没有一个扩展名的文件名:
/dir/dir2/file.xml.zip.sgn => file.xml.zip
/dir/dir2/file.xml.zip => file.xml
/dir/dir2/file.doc => file
/dir/dir2/file => file
file => file
expr
可能很棒,可能是grep -oP
好的,我可以从basename
开始扯掉目录,但是如何撕掉最终的可选扩展名呢?
答案 0 :(得分:1)
x=/etc/lolf/logl/shells.ext1.ext2
y=${x/\/*\//} # rips dir ('basename' do the same)
echo ${y%.*} # rips last ext
如果没有dirs或exts,它无论如何都有效!
任何人,你能一次性完成所有这些吗?
感谢Andrew Henle,请访问How do I remove the file suffix and path portion from a path string in Bash?
了解更多信息