计算目录中所有文本文件中的唯一单词,并删除少于2个的单词?

时间:2018-11-21 00:22:24

标签: bash uniq wc

这使我计数。但是如何删除那些计数小于2的文件?

$ cat ./a1esso.doc | grep -o -E '\w+' | sort -u -f | wc --words
1
$ cat ./a1brit.doc | grep -o -E '\w+' | sort -u -f | wc --words
4

如何获取小于2的文件名,以便我们将其删除?我将扫描数百万个文件。 find命令可以找到所有文件,但是文件名需要通过看起来似乎是管道的方式传播。在右边,可以使用rm命令。

感谢阅读。

更新:

正确的答案是使用输入管道来输入文件名。这不是可以商量的。该程序不适用于示例中显示的一个输入文件,但来自许多文件的动态列表。

用于识别符合标准的文件名的过滤器设备也将出现在接受的答案中。这也不可商议。

1 个答案:

答案 0 :(得分:0)

您可以执行此操作...

 test $(grep -o -E '\w+' ./a1esso.doc | sort -u -f | wc --words) -lt 2 && rm alesso.doc

更新:根据David的评论删除了无用的猫。