我有一个 bash 脚本,可以遍历我的音乐文件夹,获取所有歌曲元数据媒体信息并打算用所有艺术家的名字制作文件夹,但失败了。
这是到目前为止的代码:
#!/bin/bash
cd Music/
for i in "$(ls -b | grep -v /)"; do
info=$(mediainfo $i)
artist=$(echo "$info" | grep "^Performer" | awk '{for(i=3;i<=NF;++i)printf $i""FS ; print ""}')
mkdir "$artist"
done
由于某种原因,它似乎首先浏览所有歌曲,然后尝试创建一个包含所有歌曲名称的目录;我的目的是为 Mediainfo 在每个音乐文件中找到的表演者创建一个目录。
答案1
你可以迭代文件没有ls
。
for i in ./Music/*; do
info=$(mediainfo "$i") # fixed to "$i"
artist=$(echo "$info" | grep "^Performer" | awk '{for(i=3;i<=NF;++i)printf $i""FS ; print ""}')
mkdir "$artist"
done