微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

检查文件名中的点并将其删除在Linux上

我发现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”,导致播客播放器无法识别这些文件

是否有一条线可以添加到脚本中去除扩展名前的句号,或者只删除它们?

使用awkreplacetxt文件中另一个值的列中的值

退出后,xterm从terminal中保持页面不变

无法得到nohup,open_init_pty和sudo一起工作

Bash脚本debian安装程序不接受预先input的用户

为什么不找**find任何东西?

Bash:在Linux中只用空行分割一个文件

是否有可能定义一个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

显然这只适用于一个扩展名(在这种情况下是.mp4 )。

使用rename命令可以用一个连续的点替换多个点:

rename 's/.+/./g' *.mp4

如果您安装了perl并且找不到rename ,请尝试rename 。

尝试下面的,它使用tr来删除文件名中的任何句点:

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] 举报,一经查实,本站将立刻删除。

相关推荐