因此,我尝试在 bash 中编写一个脚本,它将相对路径添加到 concat_files.txt 的每一行的开头,然后我想连接所有文件并将输出文件放在路径变量中定义的同一目录中。到目前为止,sed 命令工作正常,我只需要找出如何在输出文件前面插入路径。最简单的方法是将它们连接在当前目录中,然后将输出文件移动到路径变量,但我当前目录中没有足够的位置,所以这不是一个选项。
#!/bin/bash
# Script that concatenates all the files defined in concat_files.txt
path=/mnt/disk/video_evaluation/XDROOT/Clip/
sed -i "s@^@file '$path@" concat_files.txt
sed -i "s/$/'/" concat_files.txt
ffmpeg -f concat -i concat_files.txt -c copy $path/output.mxf
也许对脚本的另一个改进是,如果我可以选择具有特定扩展名的所有文件并将它们放入文件中。但我也不知道如何才能做到这一点......
答案1
实际上@fox是对的,脚本运行得很好,我稍微修改了它以适应他建议的更改:
#!/bin/bash
# Script that concatenates all the files defined in concat_files.txt
path=/mnt/disk/video_evaluation/XDROOT/Clip/
sed -e "s@^@file '$path@" concat_files.txt > new.txt
sed -e "s/$/.MXF'/" new.txt > final.txt
ffmpeg -f concat -safe 0 -i final.txt -c copy $path/output.mxf
现在我只错过了将具有特定扩展名的文件添加到文件的功能。