我有一個文本文件done.txt,其中包含我需要執行某些操作的文件路徑。 這裏是我done.txt第一部分:從文本文件中讀取目錄時會發生變化
/data/voice/Voice27Folds/1000/1017_009.flac
/data/voice/Voice27Folds/1000/1017_010.flac
/data/voice/Voice27Folds/1000/1017_013.flac
/data/voice/Voice27Folds/1000/1017_014.flac
/data/voice/Voice27Folds/1000/1017_015.flac
/data/voice/Voice27Folds/1000/1017_020.flac
/data/voice/Voice27Folds/1000/1017_025.flac
/data/voice/Voice27Folds/1000/1017_026.flac
/data/voice/Voice27Folds/1000/1017_027.flac
/data/voice/Voice27Folds/1000/1017_030.flac
.....
當我運行此命令:
while IFS= read -r var
do
echo "$var"
done < /data/voice/done.txt
我得到完全相同的東西done.txt:
/data/voice/Voice27Folds/1000/1017_009.flac
/data/voice/Voice27Folds/1000/1017_010.flac
/data/voice/Voice27Folds/1000/1017_013.flac
/data/voice/Voice27Folds/1000/1017_014.flac
/data/voice/Voice27Folds/1000/1017_015.flac
/data/voice/Voice27Folds/1000/1017_020.flac
/data/voice/Voice27Folds/1000/1017_025.flac
/data/voice/Voice27Folds/1000/1017_026.flac
/data/voice/Voice27Folds/1000/1017_027.flac
/data/voice/Voice27Folds/1000/1017_030.flac
....
然而,當我嘗試時:
while IFS= read -r var
do
mv "$var" /data/voice #move all files to this directory
done < /data/voice/done.txt
我得到噸目錄相關的錯誤像這樣的:
mv: cannot stat '/data/voice/Voice27Folds/1000/1017_009.flac\r': No such file and directory
mv: cannot stat '/data/voice/Voice27Folds/1000/1017_013.flac\r': No such file and directory
...
我注意到,正確的目錄可能會與「\ R」追加到結尾變化。我該如何解決這個問題?
將輸入文件從DOS轉換爲UNIX格式。 –
不要相信'echo'真實地告訴你事情。 –
即使在http://pubs.opengroup.org/onlinepubs/9699919799/utilities/echo.html使用'printf'建議''echo'的POSIX規範,請參閱APPLICATION USAGE和RATIONALE部分。 (雖然這裏的特殊情況需要'printf'的非POSIX擴展)。 –