我发现Synology NAS的bash脚本正在寻找文件夹中的* .mp4文件,将video去掉并保存为* .m4a。 (目的是一个自动的YouTube的播客转换器)。
for f in *.mp4; do mv -- "$f" "$(date +%Y-%m-%d -r "${f}") $f"; done for f in *.mp4; do ffmpeg -i "$f" -vn -acodec copy "${f%.mp4}.m4a"; done
有时,* .mp4文件名包含句点,例如“This video … mp4”,导致播客播放器无法识别这些文件。
是否有一条线可以添加到脚本中去除扩展名前的句号,或者只删除它们?
无法得到nohup,open_init_pty和sudo一起工作
Bash脚本debian安装程序不接受预先input的用户
为什么不找**find任何东西?
是否有可能定义一个variables为静态的shell bash函数如C?
Shell脚本从今天起查找12个工作日(忽略假日)的date
BASHstring比较的variables总是失败
bash:print:命令未find
从${f}删除扩展名,然后删除或替换所有点,然后在重命名基本上处理除最后一个点以外的所有文件的文件时,再添加扩展名:
#!/bin/bash for f in *.mp4; do f=${f%.mp4} mv -- "${f}.mp4" "$(date +%Y-%m-%d -r "${f}.mp4") ${f//./_}.mp4" done for f in *.mp4; do ffmpeg -i "${f}" -vn -acodec copy "${f%.mp4}.m4a" done
使用rename命令可以用一个连续的点替换多个点:
rename 's/.+/./g' *.mp4
如果您安装了perl并且找不到rename ,请尝试rename 。
for f in *.mp4; do mv -- "$f" "$(date +%Y-%m-%d -r "${f}") $f"; done for f in *.mp4; do ffmpeg -i "$f" -vn -acodec copy "`echo "$f" | tr -d "."`.m4a"; done
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。