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

最初に、出力が " " で表示され、_それを " " に置き換えたい場合は、 " " を" "に.置き換えるだけです。_.

于 2012-04-15T03:28:35.177 に答える
1

いくつかのアイデア:

  • でスクリプトを実行して、デバッグ情報を表示してみてください。これにより、エラーが発生した場所が正確に表示されます。bash -x script

  • 質問を書くときは、エラーを再現する最小の完全なスニペットと、エラー メッセージの正確なテキストを含めてください。

  • 「ディレクトリを作成できなかったと言っているだけです」とコメントしました。mkdirこれは失敗しているように聞こえます。最上位のディレクトリ (つまり、何であれ$2) は存在しますか? そうでない場合は、 を使用mkdir -p "$2/$artist_name"してパス全体を作成します。

  • ちょっとした単純化: を使用sed -r 's/ +$//'してスペースを削除する代わりに、代わりに を使用できますtr -d ' '

于 2012-04-15T06:28:42.627 に答える
0

質問の意味がよくわかりませんが、スクリプトの最後の行で が導入されているように見える_ので、そこに変更して.ください。それはあなたが望んでいたものですか?

于 2012-04-15T03:26:11.013 に答える