【发布时间】:2019-03-13 05:21:48
【问题描述】:
我需要从 OMO 帐户迁移日志中选择两个 MSISDN 值并打印不匹配的值。
[2019-03-11 04:15:08 INFO-SUBAPP ESBRestClient:117] ## IP-103.228.158.85##TOKEN-201903110416276787774(**923419606907**)RESPONSE-BODY: {"callStatus":"false","responseCode":"18","description":"OMO account migration – **923481057772**"}
[2019-03-11 04:24:02 INFO-SUBAPP ESBrestClient:117] ## IP-119.153.134.128##TOKEN-1552260212780839(923214748517)RESPONSE-BODY: {"callStatus":"false"," responseCode":"18","description":"OMO账户迁移-953214748517"}
923481057772 是旧的 MSISDN。
923419606907 是新的 MSISDN,我需要将其保存在一个新文件中。我正在使用以下命令仅选择新的 MSISDN:
cat migration.txt | egrep "OMO account migration" | egrep "responseCode\":\"1700" | awk -F"(" '{gsub(/\).*/,"",$2);print $2}' >>newmsisdn.txt
我正在使用保存的 msisdn 值来获取令牌编号。然后我使用这些令牌来获取多个参数。最终输出是这样的:
日期时间 旧 MSISDN 新 MSISDN 旧配置文件 新配置文件 CNIC Acc 状态 Acc 状态迁移通道 (之前) (之后) 2019-03-11 | 00:00:14 | 923135260528 | 923029403541 | OMO BVS MA | 0 | 1620221953175 |活跃 | |子应用
2019-03-11 | 00:00:14 | 923135260528 | 923003026654 | OMO BVS MA | 0 | 1620221953175 |活跃 | |子应用
2019-03-11 | 00:00:14 | 923135260528 | 923003026654 | OMO BVS MA | 0 | 1620221953175 |活跃 | |子应用
2019-03-11 | 00:00:14 | 923135260528 | 923038048244 | OMO BVS MA | 0 | 1620221953175 |活跃 | |子应用
在第二个日志实例中,这两个值是相同的。我需要过滤掉那些,即我只需要使用不匹配的值。 如何比较两个不匹配的值并打印新的 MSISDN?
【问题讨论】:
-
当您说
filter those out时,您的意思是print those lines或print all except those lines还是别的什么? edit 您的问题是显示多行输入,而不仅仅是一行,有些符合您的标准,有些不符合您的标准,以及给定该输入的预期输出。 -
我需要打印除具有相同 MSISDN 的行之外的所有行。实际上,使用新的 MSISDN,我需要获取令牌号。使用该令牌编号,我将提取多个参数。我也会发布输出。
-
Sana,如果你想得到最好和最有帮助的答案,你应该遵循@EdMorton 的建议,包括,例如,显示“多行输入,而不仅仅是一个,有些可以,有些不可以不符合你的标准。”只有你知道你的实际输入是什么样的。如果没有您提供的清晰准确的数据,我们只能猜测,猜测会浪费我们和您的时间。