我需要包含字符串的长格式文件列表

时间:2017-09-12 08:34:40

标签: unix count grep

我希望包含长格式(ls -l)的文件列表,包括日期和时间,包含特定字符串,如果可能,还包含出现次数。

我所取得的成就是一个包含出现次数的文件列表(只是名称):

grep -c 'string' * | grep -v :0

显示如下内容: filenamenumber of occurrences

但我无法改进它以显示文件日期和时间。它必须是简单的东西,但我有点新手。

1 个答案:

答案 0 :(得分:1)

我使用-s来忽略文件夹警告。 ':0$'ending in :0的正则表达式。 awk然后仅在找到的文件名上调用ls -l,然后| tr '\n' ' '用空格替换ls命令的换行符。我们输出每行末尾的出现次数,这样我们就不会在前进时丢失信息。最后一个awk只是打印所需的列。

grep -c 'form-group' * -s | grep -v ':0$' | awk -F ':' '{ printf system( "ls -l \"" $2 "\" | tr \"\n\" \" \"" ); print " " $3 }' | awk -F ' ' '{ print $6 " " $7 " " $8 " " $9 " : " $11 }'

以下是一些示例输出:

Sep 1 13:47 xxx.blade.php : 12
Sep 1 13:47 xxx.blade.php : 5
Sep 1 13:47 xxx.blade.php : 6
Sep 11 17:25 xxx.blade.php : 4
Sep 4 15:03 xxx.blade.php : 6