![如何在 bash 脚本中使用 (basename "${video%.*}") 获取文件名的一部分?](https://linux22.com/image/1070046/%E5%A6%82%E4%BD%95%E5%9C%A8%20bash%20%E8%84%9A%E6%9C%AC%E4%B8%AD%E4%BD%BF%E7%94%A8%20(basename%20%22%24%7Bvideo%25.*%7D%22)%20%E8%8E%B7%E5%8F%96%E6%96%87%E4%BB%B6%E5%90%8D%E7%9A%84%E4%B8%80%E9%83%A8%E5%88%86%EF%BC%9F.png)
我有一组名为 xxxyyys.mp4 的视频,每个文件名都以 s 结尾。我想执行一个脚本,该脚本仅接受 xxxyyy 之前的名称作为参数 basefile。
到目前为止,我所拥有的是
for video in folder/*
do
python script.py -i "${video%*.mp4}" --basefile $(basename "${video%.*}")
done
我该如何编辑它才能仅获取截至 xxxyyy 的名称?
答案1
您可以使用:
"${video%s.*}"
这将删除从字符串的最后一个字符(包括最后一个字符)s.
到字符串末尾的所有内容。