【问题标题】:getting a long list from grep -l -- is it possible?从 grep -l 得到一个很长的列表——有可能吗?
【发布时间】:2009-04-17 15:57:09
【问题描述】:

我正在执行这个 grep: grep -l "验证失败" *.dbg

这会返回一个文件列表。不过,我最感兴趣的是这些文件的修改时间。

正确的命令是什么?

编辑:标题中的论点是错误的。

【问题讨论】:

    标签: linux unix grep


    【解决方案1】:

    xargs 显然是我的朋友。 答案是: grep -l "验证失败" *.dbg | xargs ls -ltr

    【讨论】:

    • 如果你有 GNU 用户空间(例如,GNU/Linux 系统),一个更健壮的解决方案(处理带有空白字符的文件名)是: grep -lZ "..." *.dbg | xargs -0 ls -ltr
    【解决方案2】:

    你也可以这样做

    for file in `grep -l "Validation failed" *.dbg`; do ls -ltr $file; done
    

    但 xargs 绝对更简洁、更短,并且为您提供了简单的分隔符选项。

    【讨论】:

    • xargs 不仅更简洁、更简洁,您的解决方案对于包含空格的文件名也会失败(它会在空格处拆分它们)。 xargs -0 处理。
    猜你喜欢
    • 2011-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多