我做了一个简单的bash脚本,将电影从.avi转换为.mp4,但现在我想做两件事。
- 让输出文件只有 *.mp4而不是 *.avi.mp4
- 转换完成后删除旧文件。
这是我的脚本。
#!/bin/bash
avconv -i "$1" -c:v libx264 -c:a copy -sn -crf 24 "$1".mp4
- 您应该做
${1%.avi}.mp4
,我们告诉Bash用.avi
的后缀删除$1
的内容,然后附加.mp4
后缀。 - 我建议运行
aconv ... && rm "$1"
,以便仅在转换成功时删除,因为&&
操作员仅执行以前的命令成功的命令。
最终版本:
#!/bin/bash
avconv -i "$1" -c:v libx264 -c:a copy -sn -crf 24 "${1%.avi}.mp4" && rm "$1"
希望这有帮助=)
怎么样:
avconv -i "$1" -c:v libx264 -c:a copy -sn -crf 24 "${1/.avi/.mp4}" && rm "$1"
更新
响应评论,搜索和替换的语法是:
${1/oldstring/newstring}
所以,您可以以任何方式使用它。