我有一个 .txt 文件,每一行都有一个不同的文件位置,例如
file1.zip
file2.zip
file3.zip
如何打开该文件,遍历每一行并在每一行上循环 rm -f 文件名?
此外,如果文件不存在(已被删除),删除它是否会引发错误,如果是,我该如何避免这种情况?
编辑:文件名中可能有空格,因此也需要考虑到这一点。
您可以使用for
循环cat
来遍历这些行:
IFS=$'\n'; \
for file in `cat list.txt`; do \
if [ -f $file ]; then \
rm -f "$file"; \
fi; \
done
将if [ -f $file ]
检查文件是否存在并且是常规文件(不是目录)。如果检查失败,它将跳过它。
IFS=$'\n'
顶部的 将分隔符设置为仅换行符;这将允许您处理带有空格的文件。
xargs -n1 echo < test.txt
用 rm -f 或任何其他命令替换“echo”。你也可以使用cat test.txt |
'man xargs' 了解更多信息。