错误:似乎是出现了_而不是
文件树看起来像:
.
|-- Christina Aguilera
| |-- Back To Basics . Ain't No Other Man.mp3
但是,脚本显示了这个:
.
|-- Christina Aguilera
| |-- Back To Basics _ Ain't No Other Man.mp3
守则:
tag=$(tail -c 128 $path)
song_name=$(echo "$tag" | cut -c 4-33 | sed -r 's/ +$//')
artist_name=$(echo "$tag" | cut -c 34-63 | sed -r 's/ +$//')
album_name=$(echo "$tag" | cut -c 64-93 | sed -r 's/ +$//')
test -e "$2/$artist_name" || mkdir "$2/$artist_name"
ln -s $path "$2/$artist_name/$album_name _ $song_name.mp3"
done
如何编辑此代码以解决错误?
答案 0 :(得分:1)
首先,您的输出将显示为“_
”,并且您想要将其替换为“.
”,您需要做的就是将“_
”替换为“.
” “{{1}}”
答案 1 :(得分:1)
一些想法:
尝试使用bash -x script
运行脚本以显示调试信息。这应该会准确显示错误发生的位置。
撰写问题时,请添加将重现错误的最小完整代码段以及错误消息的完整文本。
您评论说“它只是说它无法创建目录。”这听起来像mkdir
失败了。是否存在顶级目录(即$2
是什么)?如果没有,请使用mkdir -p "$2/$artist_name"
创建整个路径。
一个简单的简化:您可以使用sed -r 's/ +$//'
代替tr -d ' '
而不是使用{{1}}删除空格。
答案 2 :(得分:0)
我不确定我是否理解这个问题,但看起来脚本的最后一行是引入_
,所以只需将其更改为.
即可。那是你想要的吗?