我有一个日志文件,我想从中仅提取两个重复多次的模式
ChannelRequestDailyLog.log.2015-06-05: INFO [Thread-9290] (ChannelRequestDailyLog.java:174) - :: [IID:11][RNW:TR][RQRVT:1433477166808][RQLGT:1433477167203][RQID:4945][STV:RC][RQST:USSD][RQS:USSD][RQEXT:1433477167203][SUID:TRNP0000185881][SUN:727862315][SC:New POS][SM:727862315][SNW:TR][TID:R150605.0606.110013][TS:200][E:null][RM:728128482][AMT:100][SST:1][RID:INTID00016][VAL:49][TOP:0][COS:0][PROMO:0][TOPENQ:0][PROMOENQ:0][COSENQ:0][POSTVAL:0][PPT:346][RTT:395]
我想要看到的模式是 TID: 和 VAL: 以及“:”后面的文本。
最佳答案
使用可以使用perl:
my $string = <STDIN>;
chomp $string;
@arr = $string =~ /\[((?:TID|VAL):[\w.]*)\]/g;
$arr_len = scalar @arr;
for ( $i=0; $i<$arr_len; $i=$i+1){
print "$arr[$i]\n";
}
输出:
TID:R150605.0606.110013
VAL:49
关于linux - 从Linux中的日志文件中提取模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30834245/