Bash - 提供不正确结果的文件存在
Bash - File existence providing incorrect results
我有一个包含文件列表的文件,我想知道这些文件是否存在。我使用了这个命令:
while read line; do
filename="$(echo $line | cut -d';' -f4)";
if [ ! -e "/some/path/$filename" ];
then echo "/some/path/$filename";
fi ;
done < "../my_list_of_file"
此命令 returns 对我列出的每个文件都不存在,例如:
/some/path/my_listed_file.jpg
但是当我执行 ls /some/path/my_listed_file.jpg
时,我可以看到该文件存在。我的命令有什么问题?
感谢 Barmar 和 chepner,问题是文件末尾的 CRLF
。
这是工作命令:
while IFS=$';\r' read -r _ _ _ filename _; do
if [ ! -e "/some/path/$filename" ];
then echo "/some/path/$filename";
fi ;
done < "../my_list_of_file"
我有一个包含文件列表的文件,我想知道这些文件是否存在。我使用了这个命令:
while read line; do
filename="$(echo $line | cut -d';' -f4)";
if [ ! -e "/some/path/$filename" ];
then echo "/some/path/$filename";
fi ;
done < "../my_list_of_file"
此命令 returns 对我列出的每个文件都不存在,例如:
/some/path/my_listed_file.jpg
但是当我执行 ls /some/path/my_listed_file.jpg
时,我可以看到该文件存在。我的命令有什么问题?
感谢 Barmar 和 chepner,问题是文件末尾的 CRLF
。
这是工作命令:
while IFS=$';\r' read -r _ _ _ filename _; do
if [ ! -e "/some/path/$filename" ];
then echo "/some/path/$filename";
fi ;
done < "../my_list_of_file"