SSH - 从txt文件循环遍历行并删除文件

时间:2012-09-24 11:53:47

标签: ssh cron

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

file1.zip
file2.zip
file3.zip

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

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

编辑:文件名中可能包含空格,因此也需要照顾。

2 个答案:

答案 0 :(得分: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'会将分隔符设置为仅限换行符;这将允许您处理具有空格的文件。

答案 1 :(得分:0)

xargs -n1 echo < test.txt

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

'man xargs'获取更多信息。