使用grep搜索文本文档

时间:2014-10-06 02:00:09

标签: grep

我使用grep搜索文档并打印特定用户名的出现次数,并仅打印条目中的时钟。我可以让它做一个或另一个,但不是两个。一旦它找到了两个单词usernameclock in,我需要打印每个条目的第一行(包含日期和时间)。

例如,文档中的条目格式如下:

2014-10-05 21:01:00
username
CLOCK IN

过去几个小时我一直试图通过这个命令,所以任何帮助都会非常感激。

2 个答案:

答案 0 :(得分:0)

我认为你正在寻找这个:

awk -v user="FreddyFrog" '/:/{t=$0} /^CLOCK IN/ && lus~user {print t} {lus=$0}' file

因此,您将要查找的名称传递为user - 我已将其设置为在此处查找FreddyFrog。然后,脚本在其中查找带冒号的行并假设它们是时间,并将时间保存在变量t中。然后它会查找以CLOCK IN开头的行,如果找到,则检查我们看到的最后一个用户是您要查找的用户 - 如果是,我们打印时间t。在所有其他行上,我们假设该行是用户名并将其保存在变量lus中,我用它来表示last user seen

答案 1 :(得分:0)

想出来! 'read $ USERNAME grep“$ {USERNAME}”timeclock.txt | grep -B2“时钟进入”'