我正在尝试grep一个日志文件,只显示与某个会话ID匹配的行。但是,当我得到grep命令的结果时,我不会按照条目出现的顺序得到它们。
如果目录中的日志文件具有以下数据:
SESSNUM=4437 login.jsp
SESSNUM=4437 welcome.jsp
SESSNUM=4437 info.jsp
SESSNUM=4437 logout.jsp我输入如下:
grep SESSNUM=4437 * 我得到这个信息:
SESSNUM=4437 logout.jsp
SESSNUM=4437 welcome.jsp
SESSNUM=4437 login.jsp
SESSNUM=4437 info.jsp是否有办法使grep按它们在日志文件中出现的顺序显示匹配行(S)?
谢谢!
IVR复仇者
发布于 2009-09-18 17:37:26
grep SESSNUM=4437 *Grep通常按顺序返回。您确定要从正确的日志文件中获得结果吗?如果你指定你想要的日志文件,而不是仅仅*,它会正常工作吗?
更正!目录中应该只有一个包含会话号的文件,但我不一定知道是哪个文件。
我建议您使用grep的-H选项,这样您就可以确保只从一个文件中获取内容。这应该是默认行为,但您发布的内容不包括文件名,除非您去掉了这些文件名。
-H, --with-filename
Print the file name for each match. This is the default when
there is more than one file to search.发布于 2009-09-18 19:06:51
是否有可能grep被别名为扰乱订单的东西?
但是,我认为目录中有多个文件的可能性更大。
发布于 2009-10-02 17:54:14
把这件事归咎于错误。我正在通过一个我没有注意到的额外的grep,通过将所有的东西合并到一个搜索中,我能够得到我正在寻找的订单。
谢谢你的建议。
https://serverfault.com/questions/66777
复制相似问题