使用grep搜索文本文档



我使用grep来搜索文档,并打印出特定用户名的出现情况,以及仅打印出它们的登录条目。我可以让它做一个或另一个,但不能两者都做。一旦找到了两个单词usernameclock 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"'

最新更新