创建目录列表,其中列表中的每一行都包含 mp3 文件名和 mp3 持续时间

Create directory list where each line in list consists of mp3 file name and mp3 duration

我想从目录中的mp3文件名目录和每个文件的播放时长生成一个列表。

下面的命令生成目录中的 mp3 文件列表

for name in *.mp3; do ffmpeg -i "$name" 2>&1 |  grep -o -P "(?<=Input #0, mp3, from ').*(?=.mp3':)"  ; done; 

下面的命令生成每个 MP3 文件的时长列表

for name in *.mp3; do ffmpeg -i "$name" 2>&1 | grep -o -P '(?<=Duration: 00:).*(?=.[0-9]{2}, start)'  ; done;

我需要将这两个命令的输出合并为一个输出显示

时间 0 想法。像这样的东西......(拿你的代码)。

for name in *.mp3; 
do 
  a=$(ffmpeg -i "$name" 2>&1|grep -o -P "(?<=Input #0, mp3, from').*)(?=.mp3':)"
  b=$(ffmpeg -i "$name" 2>&1|grep -o -P '(?<=Duration: 00:).*(?=.[0-9]{2}, start)')
  echo "$b $a"
done; 

您可以随意使用 printf 而不是 echo 和格式化输出。