0

我有一个 .txt 文件,每一行都有一个不同的文件位置,例如

file1.zip
file2.zip
file3.zip

如何打开该文件,遍历每一行并在每一行上循环 rm -f 文件名?

此外,如果文件不存在(已被删除),删除它是否会引发错误,如果是,我该如何避免这种情况?

编辑:文件名中可能有空格,因此也需要考虑到这一点。

4

2 回答 2

1

您可以使用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'顶部的 将分隔符设置为仅换行符;这将允许您处理带有空格的文件。

于 2012-09-24T11:57:22.893 回答
0

xargs -n1 echo < test.txt

用 rm -f 或任何其他命令替换“echo”。你也可以使用cat test.txt |

'man xargs' 了解更多信息。

于 2012-09-24T11:57:09.567 回答