【问题标题】:Grep command in linuxlinux中的grep命令
【发布时间】:2018-03-27 13:49:45
【问题描述】:

我需要一点帮助来在一行中编写一个 grep 命令来获取前 15 个文件以及文件的大小(以 MB 为单位)并按最后修改的时间戳排序。

如果我执行下面的命令

grep -il "SmapleString" *.log| xargs -t ls -ltr

结果:

-rw-r--r--    1 Text1 Text2     5432278 27 mar 15:22 SampleFile.log

我的结果:

grep -il "SmapleString" *.log| xargs -t ls -ltr| tr -s ' ' | cut -d' '  -f5-9|tail -r|head -15

5432278 3 月 27 日 13:44 SampleFile.log

所需输出:

27 mar 13:44 SampleFile.log 5MB

5MB 27 mar 13:44 SampleFile.log

请发布您的 cmets

【问题讨论】:

  • 您可以使用ls -h 获取人类可读的文件大小。
  • ls - 我已经尝试过但它不起作用,它显示以下错误:它不是一个可识别的徽章:h

标签: linux sorting grep


【解决方案1】:

你可以试试

ls -l -h -t | head -n 5
-t按修改时间排序,最新在先

【讨论】:

  • ls -l -h -t | head -n 5 -t ls: No es un distintivo reconocido: h "h" 命令不起作用我使用 h 命令时总是出错
  • 您能分享一下您的 Linux 发行版和版本吗?
  • grep -il "SampleString" *.log| xargs -t ls -ltr |awk '{$5=sprintf($5/1024^2)} 1' 这行得通:)
  • 太棒了!您可以发布您的答案,因为其他人会来寻找它。
猜你喜欢
  • 2013-05-18
  • 2013-11-21
  • 1970-01-01
  • 1970-01-01
  • 2013-08-23
  • 1970-01-01
  • 2023-02-06
  • 2021-03-29
  • 1970-01-01
相关资源
最近更新 更多