我想在基于当前日期的文件n列表中grep一个模式

时间:2018-02-22 16:41:10

标签: shell

ls -l | grep "Feb 22" | grep -l "good" *

这是我正在使用的命令。我有4个文件,其中一个文件包含世界的好。我想列出该文件。并且该文件创建是当前日期。基于我想列出该文件的标准

2 个答案:

答案 0 :(得分:1)

试试这个:

find . -type f -newermt 2018-02-21 ! -newermt 2018-02-22 -exec grep -l good {} \;

find . -type f -newermt 2018-02-21 ! -newermt 2018-02-22 | xargs grep -l good

请,don't parse ls output

答案 1 :(得分:1)

嗨尝试使用以下命令。这个怎么运作?这里带参数find的{​​{1}}命令将在当前目录及其子目录中搜索当前日期的文件。找到的每个文件将一次传递给-mtime -1命令。 grep命令将检查该文件中的字符串(表示每个文件传递给它)

grep

在上面的命令中,它将列出所有具有当前日期的文件。要列出命令下面的特定类型的文件。这里我只列出了txt文件。

find . -mtime -1 -type f | xargs grep -i "good"

find . -name "*.txt" -mtime -1 -type f | xargs grep -i "good" 用于从当前目录运行它(点表示当前目录)。要从特定目录路径运行它,请修改如下: -

find .

同样find /yourpath/ -name "*.txt" -mtime -1 -type f | xargs grep -i "good" 表示"忽略大小写"。对于特定情况,请使用grep -i