如何从同一个日志中的不同行grep多个单词

时间:2018-04-18 04:30:27

标签: bash awk grep

我想grep包含来自同一日志的不同行中的单词的文件。单词是 checkCredit?msisdn = 766117506 creditLimit

日志文件是这样的

freeMemory 103709392time Mon Mar 12 04:02:13 IST 2018 ?http://127.0.0.1:8087/DialogProxy/services/ServiceProxy/ checkCredit MSISDN = 767807544 &安培; TRANSID = 45390124 freeMemory 73117016time Mon Mar 12 04:02:14 IST 2018 statusCode200 {statusCode = 200,response = outstandingAmount 0.0 creditLimit 0.0 ,errorResponse =,responseTime = 0} 这是气氛0.0

这样做的最佳方式是什么?

4 个答案:

答案 0 :(得分:0)

您可以使用

$ grep -e 'checkCredit?msisdn=766117506' -e 'creditLimit' <filename>

答案 1 :(得分:0)

只需尝试

grep creditLimit log.txt | grep checkCredit

答案 2 :(得分:0)

尝试一下:

grep 'checkCredit?msisdn\|creditLimit' inputfile

答案 3 :(得分:0)

  

grep'checkCredit?msisdn = 766117506 \ | creditLimit'inputfile catalina.out_bckp,当我运行此命令时,它还只显示creditLimit详细信息,为什么它不显示checkCredit?msisdn = 766117506详细信息。

问题帖子中显示的日志文件不包含766117506,因此毫无疑问grep找不到它。如果您确实拥有766117506的数据,请将其添加到问题中。

  

我使用过这个命令 grep'checkCredit?msisdn \ |这是balnce'catalina.out_bckp | awk'$ 4&lt; 10 {print;}'它给了我很好的结果但是有一些缺失值。

您尚未在该模式中使用creditLimit,因此难怪这些行丢失。