按包含的字符串搜索文件,并按大小排序

时间:2017-06-23 22:25:41

标签: linux bash search grep du

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

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

但我不知道如何按大小订购此列表并获取最大的文件。

2 个答案:

答案 0 :(得分:2)

grep + du + 排序管道:

grep -rwl '{STRING}' | xargs du -bh | sort -rh
  • xargs du -bh - 估算每个文件的空间使用量(以字节为单位)

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

答案 1 :(得分:1)

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

 grep -Zrlw "directory" -e "string" | du -k --files0-from=- | sort -nr
  • --files0-from选项与-一起用作参数。
  • -Z给出NUL终止的输出;从而准备输出du的{​​{1}}选项。