例如我输入
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*'