我使用grep
来搜索文档,并打印出特定用户名的出现情况,以及仅打印出它们的登录条目。我可以让它做一个或另一个,但不能两者都做。一旦找到了两个单词username
和clock in
,我就需要打印出每个条目的第一行(包含日期和时间)。
例如,文档文本中的条目的格式如下:
2014-10-05 21:01:00
username
CLOCK IN
在过去的几个小时里,我一直在努力完成这个命令,所以如果有任何帮助,我将不胜感激。
我想你正在寻找这个:
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
。
想明白了!'读取$USERNAME grep"${USERNAME}"timeclock.txt | grep-B2"CLOCK IN"'