dav*_*vid 4 grep find search timestamps files
我需要找到文件夹名称以及在其内容中包含我的字符串的文件名。我在这个目录“ /data/queue/data
”中,我在同一个目录中有很多文件夹,在每个文件夹中,我有各种文件。
以下是此目录“ /data/queue/data
”中的文件夹,每个文件夹中都有各种文件。
david@machineA:/data/queue/data$ ls -lrth
drwxr-xr-x 2 david david 12K Apr 11 18:58 1428800400
drwxr-xr-x 2 david david 12K Apr 11 19:58 1428804000
drwxr-xr-x 2 david david 12K Apr 11 20:58 1428807600
Run Code Online (Sandbox Code Playgroud)
我只想从这个目录运行一个命令——“ /data/queue/data
”,但它应该只在文件夹中找到时间戳来自April 13th 3 AM to April 13th 9 AM
.
下面是我的命令,它将递归地查找所有文件夹中的文件,但我应该如何确保它只能从April 13th 3 AM to April 13th 9 AM
文件夹中查找文件?
david@machineA:/data/queue/data$ grep -rl "pcV6URY" /data/queue/data
Run Code Online (Sandbox Code Playgroud)
做这个的最好方式是什么?
尝试这个:
touch -d"April 13 3 AM" file1
touch -d"April 13 9 AM" file2
find . -newer file1 ! -newer file2 -exec grep -l "pcV6URY" {} +
rm file1 file2
Run Code Online (Sandbox Code Playgroud)
find
可以直接处理时间,但touch
可以更好地处理人类风格的日期:
touch -d"April 13 3 AM" file1; touch -d"April 13 9 AM" file2
这将创建两个文件来标记时间范围的开始和结束。
find . -newer file1 ! -newer file2 -exec grep -l "pcV6URY" {} +
这会查找file1
比file2
. 对于所有此类文件,它会grep
在它们上运行以查看它们是否包含您的字符串。