使用grep来搜索文本文档
问题描述:
我使用grep
来搜索一个文档,并打印出一个特定的用户名和只有他们的时钟条目。我可以把它做到一个或另一个,但不是两个。一旦发现这两个词username
和clock in
我需要打印每个条目的第一行(包含日期和时间)。使用grep来搜索文本文档
例如,记录的条目到文本的格式如下:
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”'
提供一些示例输入和所需输出,以及您尝试的内容。否则,理解这个问题有点困难......并且你不会得到很多答案。 – fedorqui 2014-10-06 10:23:52
对不起,如果我的消息很混乱。我想读取用户名,然后让程序查找该用户名和只有条目中的时钟,然后将输出打印到屏幕上。这是我现在有的,这是行不通的:阅读$ USERNAME grep“$ {USERNAME}”timeclock.txt | grep“CLOCK IN” – Chalmers 2014-10-07 00:50:15
想通了!感谢所有的帮助。 'read $ USERNAME grep“$ {USERNAME}”timeclock.txt | grep -B2“CLOCK IN”' – Chalmers 2014-10-07 01:10:19