如何对特定文件使用grep?

如何对特定文件使用grep?

例如我输入

ls -altr | grep "23 Dec"

所以它只会显示 12 月 23 日的文件,我想对它们使用 grep,比如

ls -altr | grep "23 Dec" | xargs grep -l "some_string"

但这不起作用)

怎么做?

答案1

如果您想使用您的方式,请尝试:

ls -altr | grep "23 Dec" | awk '{print $9}' | xargs -i grep -l "some_string" {}

或者find我会这样做:

find . -type f -newermt 2012-12-23 ! -newermt 2012-12-24 -exec grep -l "some_string" {} \;

在 find 命令中,不要忘记转义的分号。另请注意,find 的工作方式与xargs与 -exec 选项一起使用时的工作方式大致相同。

答案2

如果您试图查找在特定日期修改的某些文件,

不需要管道,(ls 默认使用修改时间)

find . -type f -newermt 2012-12-23 ! -newermt 2012-12-24 -iname '*some_string*'

相关内容