3

我制作了一个简单的 bash 脚本来将电影从 .avi 转换为 .mp4,但现在我想做两件事。

  1. 让输出文件只有 *.mp4 而不是 *.avi.mp4
  2. 转换完成后删除旧文件。

这是我的脚本。

#!/bin/bash


avconv -i "$1" -c:v libx264 -c:a copy -sn -crf 24 "$1".mp4
4

2 回答 2

3
  1. 你应该这样做${1%.avi}.mp4,我们告诉 bash 打印删除后缀的内容$1.avi然后附加.mp4后缀。
  2. 我建议运行aconv ... && rm "$1",以便仅在转换成功时删除,因为&&如果前一个命令成功,操作员只会执行其后面的命令。

最终版本:

#!/bin/bash

avconv -i "$1" -c:v libx264 -c:a copy -sn -crf 24 "${1%.avi}.mp4" && rm "$1"

希望这会有所帮助=)

于 2012-10-23T15:53:47.423 回答
2

怎么样:

avconv -i "$1" -c:v libx264 -c:a copy -sn -crf 24 "${1/.avi/.mp4}" && rm "$1"

更新

针对评论,搜索和替换的语法是:

${1/oldstring/newstring}

因此,您可以随心所欲地使用它。

于 2012-10-23T15:56:56.170 回答