【问题标题】:Count unique words in all text files in directory, and delete those having less than 2?统计目录中所有文本文件中的唯一单词,并删除那些少于 2 的单词?
【发布时间】:2018-11-21 00:22:23
【问题描述】:

这让我明白了。但是如何删除那些 count

$ 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命令好像可以用了。

感谢阅读。

更新:

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

用于识别符合标准的文件名称的过滤装置也将出现在接受的答案中。这也没有商量余地。

【问题讨论】:

    标签: bash uniq wc


    【解决方案1】:

    你可以这样做……

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

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

    【讨论】:

    • cat ./a1esso.doc 是对cat (UUOc) 的不必要的使用。取而代之的是grep -o -E '\w+' alesso.doc | ...
    • 无法按照书面方式选择答案。正如我已经展示的那样,正确的答案是使用 cat 来提供文件名。这是没有商量余地的。
    • 您不需要cat 来“提供文件名”。 grep 将文件名作为参数。 cat file > grep ... 相当于grep … file,只是前者被认为是错误的形式。
    猜你喜欢
    • 2019-11-07
    • 2014-11-11
    • 2018-10-22
    • 1970-01-01
    • 2016-08-06
    • 1970-01-01
    • 1970-01-01
    • 2013-01-04
    • 1970-01-01
    相关资源
    最近更新 更多