我使用grep
搜索文档并打印特定用户名的出现次数,并仅打印条目中的时钟。我可以让它做一个或另一个,但不是两个。一旦它找到了两个单词username
和clock in
,我需要打印每个条目的第一行(包含日期和时间)。
例如,文档中的条目格式如下:
2014-10-05 21:01:00
username
CLOCK IN
过去几个小时我一直试图通过这个命令,所以任何帮助都会非常感激。
答案 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“时钟进入”'