我想分别获取文件名(没有扩展名)和扩展名.
我到目前为止找到的最佳解决方案是:
NAME=`echo "$FILE" | cut -d'.' -f1`
EXTENSION=`echo "$FILE" | cut -d'.' -f2`
Run Code Online (Sandbox Code Playgroud)
这是错误的,因为如果文件名包含多个.字符,它将不起作用.如果,让我们说,我有a.b.js,它会考虑a和b.js,而不是a.b和js.
它可以在Python中轻松完成
file, ext = os.path.splitext(path)
Run Code Online (Sandbox Code Playgroud)
但是如果可能的话,我宁愿不为此启动Python解释器.
有更好的想法吗?
我的剧本:
#!/usr/bin/env bash
PATH=/home/user/example/foo/bar
mkdir -p /tmp/backup$PATH
Run Code Online (Sandbox Code Playgroud)
现在我想获得"$ PATH"的第一个文件夹:/ home /
cd /tmp/backup
rm -rf ./home/
cd - > /dev/null
Run Code Online (Sandbox Code Playgroud)
如何像上面的示例一样始终检测第一个文件夹?"dirname $ PATH"只返回"/ home/user/example/foo /".
提前致谢!:)