2012-01-06 25 views
0

何らかの理由でmvがbashスクリプトで正しく動作しません。 このスクリプトは、スペース Bash:mv:指定されたターゲットはディレクトリではありません

ls *mp3 > ls2.txt 

while read line 
do 
     sed_name=$(echo $line | sed 's/ /_/g' | sed "s/'//g") 
     mv "'"$line"'" "'"$sed_name"'"; 
done < ls2.txt 

rm ls2.txt 

とmp3ファイルの名前を変更する必要がありますが、私は次のエラーのMVを取得しています:指定されたターゲットがディレクトリではありません(MV:указаннаяцельнеявляетсякаталогом)の代わりに "'" の

+2

MV『$行』『$のsed_name』をしてみてください。これは複雑で、あなただけの*の.MP3で私のために'行わない理由。行う...;済んだ? – fge

+0

そのように見えます。私はおかげで試してみます –

答えて

1

を$行「"」..ちょうど

+0

私はそれを試したと思っていました...しかしそれは問題でした。ありがとう。 –

+0

また、echoコマンド( 'echo" $ line "')で二重引用符を使用すると、行内に複数のスペースがあるファイル名に問題が発生します。 –

関連する問題