当名称缺少符号时,如何更改删除文件的脚本?

当名称缺少符号时,如何更改删除文件的脚本?

我正在尝试根据此答案按名称删除文件 如何删除文本文件中列出的文件

但出现以下错误:

rm:无法删除'var/Resources/Images/fd29d33d.jpg'$'\r':没有此文件或目录

我知道 txt 文件中的每一行/开头都缺少一个,行尾也有一些错误:\r最后(最后一个文件除外)。我该如何更改此命令xargs rm < file以使其在我的文件中正常工作?文件包含大约 8kk 行

这不是家庭作业,我不是管理员,需要完成这件事。

答案1

为了/在每个文件的开头添加 ,并删除第一个 之后的尾随字符',您可以尝试使用此命令代替xargs rm < file

sed 's/^/\//' file | sed "s/'.*$//" | xargs ls

如果上述命令正确列出了文件,则必须更改lsrm以便真正删除文件,如下所示:

sed 's/^/\//' file | sed "s/'.*$//" | xargs rm

我希望这有帮助。

相关内容