2012-01-06 2 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

이것은 복잡한입니다, 시도; 해야 할 것...; 다 됐어? – fge

+0

그 방법이 더 쉬워 보입니다. 고맙다고 생각합니다. –

답변

1

을 $ 라인 " '".. 단지

MV "$ 선"그냥 *의 .MP3에 내가 위해`하지 않는 이유 "$의 sed_name"

+0

이상하게 생각했는데 ... 그게 문제였습니다. 감사. –

+0

또한 echo 명령 ('echo "$ line"')에 큰 따옴표를 사용하십시오. 그렇지 않으면 행에 둘 이상의 공백이있는 파일 이름에 문제가 발생합니다. –