我正在尝试根据此答案按名称删除文件 如何删除文本文件中列出的文件
但出现以下错误:
rm:无法删除'var/Resources/Images/fd29d33d.jpg'$'\r':没有此文件或目录
我知道 txt 文件中的每一行/
开头都缺少一个,行尾也有一些错误:\r
最后(最后一个文件除外)。我该如何更改此命令xargs rm < file
以使其在我的文件中正常工作?文件包含大约 8kk 行
这不是家庭作业,我不是管理员,需要完成这件事。
答案1
为了/
在每个文件的开头添加 ,并删除第一个 之后的尾随字符'
,您可以尝试使用此命令代替xargs rm < file
:
sed 's/^/\//' file | sed "s/'.*$//" | xargs ls
如果上述命令正确列出了文件,则必须更改ls
为rm
以便真正删除文件,如下所示:
sed 's/^/\//' file | sed "s/'.*$//" | xargs rm
我希望这有帮助。