1

错误:似乎它显示为 _ 而不是

文件树如下所示:

.
|-- 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

如何编辑此代码以解决错误?

4

3 回答 3

1

一些想法:

  • 尝试运行脚本以显示调试信息。这应该向您准确显示错误发生的位置。bash -x script

  • 当你写一个问题时,包括将重现错误的最小的完整片段,以及错误消息的确切文本。

  • 您评论说“它只是说它无法创建目录。” 这听起来像是mkdir失败了。顶级目录(即,无论$2是什么)是否存在?如果没有,请使用mkdir -p "$2/$artist_name"创建整个路径。

  • 一个小的简化:sed -r 's/ +$//'你可以使用tr -d ' '而不是使用来删除空格。

于 2012-04-15T06:28:42.627 回答
1

首先,您的输出将显示为“ _”,并且您想将其替换为“ .”,您需要做的就是将“ _”替换为“ .

于 2012-04-15T03:28:35.177 回答
0

我不确定我是否理解这个问题,但看起来脚本的最后一行正在引入_,所以只需将其更改为 a .。那是你想要的吗?

于 2012-04-15T03:26:11.013 回答