我制作了一个简单的 bash 脚本来将电影从 .avi 转换为 .mp4,但现在我想做两件事。
- 让输出文件只有 *.mp4 而不是 *.avi.mp4
- 转换完成后删除旧文件。
这是我的脚本。
#!/bin/bash
avconv -i "$1" -c:v libx264 -c:a copy -sn -crf 24 "$1".mp4
我制作了一个简单的 bash 脚本来将电影从 .avi 转换为 .mp4,但现在我想做两件事。
这是我的脚本。
#!/bin/bash
avconv -i "$1" -c:v libx264 -c:a copy -sn -crf 24 "$1".mp4
${1%.avi}.mp4
,我们告诉 bash 打印删除后缀的内容$1
,.avi
然后附加.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}
因此,您可以随心所欲地使用它。