如何解析文件名的文件并以交互方式删除

时间:2016-12-15 18:46:42

标签: linux bash unix xargs

我想读取一个文件并解析出文件名并将其删除。在我的情况下,这意味着删除文件中每行的第一个选项卡后的所有内容以获取文件名,然后在文件上调用rm -i

这是我到目前为止所做的,但它只是在没有提示的情况下将它们全部删除...如果我将-i添加到xargs rm,它会给我一面文字而不让我选择{{1 }}

y/n

2 个答案:

答案 0 :(得分:2)

问题是rm -i在stdin上询问是/否。您重定向到while循环并导管到xargs,这两个都将覆盖rm -i的标准输入。

您可以重写以避免xargs,并为您的循环使用不同的FD:

while IFS=$'\t' read -u 3 -r file _ 
do
  rm -i "$file"
done 3< yourfile.txt

答案 1 :(得分:1)

您可以避免使用rm -i并使用xargs -p提示您删除每个文件:

cut -f1 file | xargs -n1 -p rm