【问题标题】:Search files by a contained string and order them by size按包含的字符串搜索文件并按大小排序
【发布时间】:2017-06-23 22:25:41
【问题描述】:

我需要获取包含某个字符串的最大文件。 我找到了一种列出所有具有该字符串的文件的方法:

grep -rwl '/tmp2disk' -e '{STRING}'

但我不知道如何按大小排序此列表并获得最大的文件。

【问题讨论】:

    标签: linux bash search grep du


    【解决方案1】:

    grep + du + sort 管道:

    grep -rwl '{STRING}' | xargs du -bh | sort -rh
    

    • xargs du -bh - 估计每个文件的空间使用情况(以字节为单位)

    • sort -rh - 以数字降序对输出进行排序

    【讨论】:

    • sort -rn将按数字排序,而不是sort -rh 以按人类可读的数字和单位排序
    【解决方案2】:

    一个小的替代版本,而不是使用xargs,您可以执行以下操作:

     grep -Zrlw "directory" -e "string" | du -k --files0-from=- | sort -nr
    
    • 使用--files0-from 选项和- 作为参数。
    • -Z 给出 NUL 终止输出;因此准备输出以供 du--files0-from 选项使用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-04-02
      • 1970-01-01
      • 1970-01-01
      • 2015-02-13
      • 2014-06-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多