怎样的“grep -l”的输出按时间顺序排序,通过最新修改日期持续多久?(How to sort t

2019-09-19 05:30发布

我使用-l标志使用grep只打印匹配的文件名。

我想然后列出按升序排列,即最新的最后结果(文件)。

明显

grep -l <pattern> *.txt | ls -rt

是不是我所需要的,因为-lrt仅仅输出的所有文件的LS。

Answer 1:

尝试:

ls -rt *.txt | xargs grep -l <pattern>

我们首先使用ls列出*.txt文件,并通过修改时间(最新的最后一个),然后为每个条目通过运行它们进行排序grep所以我们只打印出包含模式的文件。



Answer 2:

我知道这是一个老问题,但认为加入我的建议的人谁正在寻找相同的..

for i in $(ls -rt *.txt); do grep <pattern> $i; done



Answer 3:

这里是另一种方式

grep -l <pattern> *.txt | xargs ls -ltr --time-style="+%Y%m%d_%H%M"

例如

$ grep -l argparse * | xargs ls -ltr --time-style="+%Y%m%d_%H%M"
-rwxr-xr-x 1 raju 197121   979 20171030_2323 list_dep.py
-rwxr-xr-x 1 raju 197121 14329 20180129_2216 grep_installed.py
-rwxr-xr-x 1 raju 197121  7517 20180129_2216 popsort.py

只列出文件没有时间戳等,

grep -l <pattern> * | xargs ls -1tr

例如

$ grep -l argparse * | xargs ls -1tr
list_dep.py
grep_installed.py
popsort.py


文章来源: How to sort the output of “grep -l” chronologically by newest modification date last?
标签: linux unix grep