【发布时间】:2019-03-04 07:23:54
【问题描述】:
我正在尝试转换此日志行:
9:[2019-02-25 00:39:01] production.DEBUG: JOB-VARS : {"phone_numbers":["+9660599291111"],"message":"Your verification code is: 74222","twilio":{},"objectKey":"job:class:App\\Jobs\\SmsJob:000000001328e347000000003113b4f8","connection":"sqs-high","queue":null,"delay":null,"job":{},"JOB-CLASS":"App\\Jobs\\SmsJob"} [] []
16:[2019-02-25 00:50:06] production.DEBUG: JOB-VARS : {"phone_numbers":["+9660533001112"],"message":"Your verification code is: 31231","twilio":{},"objectKey":"job:class:App\\Jobs\\SmsJob:00000000206561fd000000003fb01b05","connection":"sqs-high","queue":null,"delay":null,"job":{},"JOB-CLASS":"App\\Jobs\\SmsJob"} [] []
54:[2019-02-25 03:59:42] production.DEBUG: JOB-VARS : {"phone_numbers":["+9647707771113"],"message":"Your verification code is: 64628","twilio":{},"objectKey":"job:class:App\\Jobs\\SmsJob:0000000003baa9660000000022c0679c","connection":"sqs-high","queue":null,"delay":null,"job":{},"JOB-CLASS":"App\\Jobs\\SmsJob"} [] []
放入如下所示的电子表格:
| time | phone number | sms job id |
---------------------------------------------------------------------------
| 2019-02-25 00:39:01 | +96605992911111 |000000001328e347000000003113b4f8|
| 2019-02-25 00:50:06 | +96605992911112 |00000000206561fd000000003fb01b05|
| 2019-02-25 03:59:42 | +96605992911113 |0000000003baa9660000000022c0679c|
我试着写这行
perl -ne 'print "$1,$2\n" if /\[(.*?)\].+(\[.*\])/' filename
但我得到的只是这个:
2019-02-25 00:39:01,[]
2019-02-25 00:50:06,[]
2019-02-25 03:59:42,[]
我在捕获第二组时卡住了。想法?
【问题讨论】:
-
对该文件运行相同的 perl 命令,我得到了一些不同但预期的结果。你确定输入的字符串和你发布的一样吗?
-
@Potato.. 它就像一个魅力!
-
注意——您正在捕获和打印两件东西,而需要三件?另外,我认为显示的数据是正确的(并且每一行上的数据多一点,如上面给出的链接所示,与该链接中所见的完全相同,不影响模式)
-
正则表达式中的第二个模式与行尾的 emtpy
[]匹配(在链接中看到,而不是在问题中),因为.+的贪婪 -
太好了,很高兴听到这一切都很好:) 感谢您的照顾。