【发布时间】:2014-05-18 00:18:48
【问题描述】:
我有一个文件,其中包含很多与此类似的行:
{"id": 2796, "some_model": "Profile", "message_type": "MODEL_SAVE", "fields": {"account": 14, "address": null, "modification_timestamp": "2014-03-19T10:46:33.543Z", "was_deleted": false}}
然后我想找到所有包含我想要的相应行的一些片段的行。将在上面的示例行中应用的示例是:
~$ grep '2796' file.log | grep 'Profile' | grep 'another_more' | grep 'so_on'
我尝试以与上述相同的方式进行操作,EDITED:它确实有效,但不足以带来所有必要的数据。我的意思是,搜索结果中缺少数据。 :(
按照grep 'word' filename 的想法,它可以工作,但在大量数据中仅一个词是不够的。那么,如何传递多个“单词”来匹配我真正想要的?我真正想要的是同时使用 grep 通过 'ID'、'*some_model*' 和 'account' 进行搜索。
如何进行搜索以匹配提示中所有可能的行与这些参数?
这更像是一个疑问,是否可以使用 if 和 else o while 之类的条件也可以与 grep 结合使用?
如果问题不清楚,请告诉我更正。 谢谢大家。
【问题讨论】:
-
是的,你的问题不是很清楚。示例可能会有所帮助。
-
@devnull,好的。已编辑!谢谢! :D
-
你想要匹配所有单词或任何单词的行吗?
-
@devnull,所有的话。
-
听起来您想要以下内容:您想要查找每个包含在 ANY ORDER 中指定的所有搜索字符串的行。你能确认一下吗?顺便说一句,您的
grep ... | grep ...方法应该有效,但效率低下 - 也许这就是您要问的原因:寻找更有效的解决方案。