【发布时间】:2019-02-14 06:39:02
【问题描述】:
我有几个文件夹是有声读物。这些文件已编号,我想将它们转换为一个文件。 我使用以下脚本来转换它们:
#!/bin/bash
if [ ! -d mp3 ]; then
mkdir -p mp3;
fi;
for f in ./*.flac; do echo "file '$f'" >> mylist.txt; done
ffmpeg -f concat -safe 0 -i mylist.txt -b:a 320k mp3/title.mp3
[ -e mylist.txt ] && rm mylist.txt
我的问题是我必须重命名前十个文件,因为它们的顺序不正确。这些文件被命名为 1 - Title、2 - Title、3 - Title 等等。为了获得正确的顺序,我必须将它们重命名为 01 - Title, 02 - Title, ..., 09 - Title。 如何使用 bash 脚本来做到这一点?此外,如果 playlist.m3u 文件可以相应地更改,那就太好了。
感谢您的帮助。
@Cyrus 发布了正确的链接来解决我的问题。 解决的脚本是:
#!/bin/bash
if [ ! -d mp3 ]; then
mkdir -p mp3;
fi;
for f in ./*.flac; do echo "file '$f'" >> mylist2.txt; done
sort -V mylist2.txt >> mylist.txt
rm mylist2.txt
ffmpeg -f concat -safe 0 -i mylist.txt -b:a 320k mp3/title.mp3
[ -e mylist.txt ] && rm mylist.txt
【问题讨论】:
-
这可能会有所帮助:Sorting strings with numbers in Bash
-
谢谢,我在 ./*.flac 中更改了 'for f 脚本;做 echo "file '$f'" >> mylist2.txt;完成排序 -V mylist2.txt >> mylist.txt rm mylist2.txt'
标签: bash ffmpeg file-rename