免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1880 | 回复: 3

[文本处理] 请问如何从两个文本文件中取得信息并按格式输出? [复制链接]

论坛徽章:
17
辰龙
日期:2014-05-21 21:01:4115-16赛季CBA联赛之北控
日期:2016-11-28 18:26:3815-16赛季CBA联赛之佛山
日期:2016-11-03 11:18:5815-16赛季CBA联赛之辽宁
日期:2016-07-10 16:09:4115-16赛季CBA联赛之江苏
日期:2016-02-20 23:09:202015亚冠之塔什干棉农
日期:2015-08-17 19:49:492015年亚洲杯之日本
日期:2015-04-30 01:24:342015年亚洲杯之约旦
日期:2015-04-01 00:37:182015年亚洲杯之沙特阿拉伯
日期:2015-03-02 15:55:40处女座
日期:2014-05-25 10:34:0015-16赛季CBA联赛之深圳
日期:2016-12-23 13:51:38
发表于 2020-03-08 02:00 |显示全部楼层
本帖最后由 bikkuri 于 2020-03-08 02:24 编辑

大家好!
我有一个问题想向大家请教。
有这样两个数据文件的样本,我希望从中获取对应的信息并按一定格式输出。


文件1:
<a href3D"
https://takumi.maruyama.com/5003h0000021b89AAA/view" style3D"color:rgb(0,112,210); word-break:break-all">00232281</a>
<a href3D"
https://takumi.maruyama.com/5003h0000021b89AAA/view" style3D"color:rgb(0,112,210); word-break:break-all">Why there is PmFileNotificationMissing alarm on NSP? How to clean it permanently</a>
Myanmar
<a href3D"
https://takumi.maruyama.com/0014100000LUlPtAAL/view" style3D"color:rgb(0,112,210); word-break:break-all">OOREDOO MYANMAR LIMITED</a>
<a href3D"
https://takumi.maruyama.com/0033h000003NQAJAA4/view" style3D"color:rgb(0,112,210); word-break:break-all">Sareth Mak</a>
2/7/2020 11:36 AM
2/7/2020 11:50 AM
689
<a href3D"
https://takumi.maruyama.com/0052M000009BySQQA0/view" style3D"color:rgb(0,112,210); word-break:break-all">Satomi Ishihara</a>
Responded in Progress
-
Medium
Major
NSP (Network Services Platform)
NFM-P (Network Functions Manager - Packet)
NSPD-251444
<a href3D"
https://takumi.maruyama.com/5003h0000022JtCAAU/view" style3D"color:rgb(0,112,210); word-break:break-all">00237425</a>
<a href3D"
https://takumi.maruyama.com/5003h0000022JtCAAU/view" style3D"color:rgb(0,112,210); word-break:break-all">We have an issue February 11, 2020 measurement missing at G2102 & G 2103 (CMG file) around 00 - 01 AM, we try to backup manually data file to NSP but cannot generate and result blank (as attached). Is it any other work around to recovery this issue?</a>
Indonesia
<a href3D"
https://takumi.maruyama.com/0014100000LUkfCAAT/view" style3D"color:rgb(0,112,210); word-break:break-all">PT HUTCHISON 3 INDONESIA</a>
<a href3D"
https://takumi.maruyama.com/0033h000003NOvpAAG/view" style3D"color:rgb(0,112,210); word-break:break-all">Amin Susmanto</a>
2/12/2020 10:20 AM
2/12/2020 11:01 AM
571
<a href3D"
https://takumi.maruyama.com/0052M000009BySQQA0/view" style3D"color:rgb(0,112,210); word-break:break-all">Satomi Ishihara</a>
Responded in Progress
Open Violation
Low
Major
NSP (Network Services Platform)
NFM-P (Network Functions Manager - Packet)
na
<a href3D"
https://takumi.maruyama.com/5003h0000023dWAAAY/view" style3D"color:rgb(0,112,210); word-break:break-all">00239567</a>
<a href3D"
https://takumi.maruyama.com/5003h0000023dWAAAY/view" style3D"color:rgb(0,112,210); word-break:break-all">Create an alarm in NFM-P when the KPI 93VS.rateLimitMaxTps94 is reaching 1500 (our current max limit is 2000) </a>
Myanmar
<a href3D"
https://takumi.maruyama.com/0014100000LUlPtAAL/view" style3D"color:rgb(0,112,210); word-break:break-all">OOREDOO MYANMAR LIMITED</a>
<a href3D"
https://takumi.maruyama.com/0033h000003NQAJAA4/view" style3D"color:rgb(0,112,210); word-break:break-all">Sareth Mak</a>
2/19/2020 5:22 PM
2/19/2020 5:25 PM
396
<a href3D"
https://takumi.maruyama.com/0052M000009BySQQA0/view" style3D"color:rgb(0,112,210); word-break:break-all">Satomi Ishihara</a>
Responded in Progress
Compliant
Medium
Minor
NSP (Network Services Platform)
NFM-P (Network Functions Manager - Packet)
NSPD-263724



文件2:
NSPD-251444|Not-Escalated|Unresolved|Conar Mcgill|Satomi Ishihara



输出格式为:


  1. |No|SF------|PTS--------[S]|Severity|Priority|Description------------------------------------------------------|CUSTOMER---------|State----------------|ReportedOn[Day]|
  2. | 1|00232281|NSPD-246384[U]|Major   |Medium  |Why there is PmFileNotificationMissing alarm on NSP? How to cle..|OOREDOO MYANMAR..|Responded in Progress|2020-02-07[ 30]|
  3. | 2|00237425|na            |Major   |Low     |We have an issue February 11, 2020 measurement missing at G2102..|PT HUTCHISON 3 ..|Responded in Progress|2020-02-12[ 25]|
  4. | 3|00239567|NSPD-263724[*]|Minor   |Medium  |Create an alarm in NFM-P when the KPI 93VS.rateLimitMaxTps94 is..|OOREDOO MYANMAR..|Responded in Progress|2020-02-19[ 18]|
  5. +--+--------+--------------+--------+--------+-----------------------------------------------------------------+-----------------+---------------------+---------------+
复制代码

output.PNG










其中:
1)PTS--------[S]是指当PTS对应的取值不是na的时候,就到文件2中去找到对应行的第三个字段的首字母,如果找不到则显示*;
例如,NSPD-251444对应行的第三个字段Unresolved的首字母为U,则显示为[U]
NSPD-263724对应行找不到,则显示为*


2)Description的长度超过66,CUSTOMER的长度超过18,则自动截短长度为64或16,并在后面加上两个点..;

3)ReportedOn[Day]中的Day是要根据报告日日期计算出距离今天的天数;
例如:2020-02-07[ 30]中的30是用今天2020-03-8减去2020-02-07得到的天数。

date.png
谢谢大家的帮助!





论坛徽章:
0
发表于 2020-03-08 12:14 |显示全部楼层
本帖最后由 Looiml 于 2020-03-08 12:37 编辑

cat a.txt
<a href3D"https://takumi.maruyama.com/5003h0000021b89AAA/view" style3D"color:rgb(0,112,210); word-break:break-all">00232281</a>
<a href3D"https://takumi.maruyama.com/5003h0000021b89AAA/view" style3D"color:rgb(0,112,210); word-break:break-all">Why there is PmFileNotificationMissing alarm on NSP? How to clean it permanently</a>
Myanmar
...

cat b.txt
NSPD-251444|Not-Escalated|Unresolved|Conar Mcgill|Satomi Ishihara


cat test.awk
  1. BEGIN {
  2.         OFS="|"
  3.         print "|No|SF------|PTS--------[S]|Severity|Priority|Description-------------------------------------------------------|CUSTOMER----------|State----------------|ReportedOn[Day]|"
  4. }

  5. NR==FNR {
  6.         FS="|";$0=$0
  7.         a[$1]=substr($3,1,1)
  8. }

  9. NR>FNR && FNR%16==1{
  10.         no+=1
  11.         FS="<[^<>]+>";$0=$0
  12.         delete f
  13.         f[1]=$2
  14.         for(i=2;i<=16;i++) {
  15.                 getline
  16.                 f[i]=$2?$2:$1
  17.         }
  18.         $1=sprintf("%2d",no)
  19.         $2=f[1]
  20.         $3=f[16]
  21.         if($3!="na") $3=$3"["(a[f[16]]?a[f[16]]:"*")"]"
  22.         $3=sprintf("%-14s",$3)
  23.         $4=sprintf("%-8s",f[13])
  24.         $5=sprintf("%-8s",f[12])
  25.         $6=sprintf("%-66s",length(f[2])>66?(substr(f[2],1,64)".."):f[2])
  26.         $7=sprintf("%-18s",length(f[4])>18?(substr(f[4],1,16)".."):f[4])
  27.         $8=sprintf("%-21s",f[10])
  28.         split(f[6],time,"[ /]")
  29.         t=mktime(sprintf("%d %d %d 0 0 0",time[3],time[1],time[2]))
  30.         $9=strftime("%F",t)"["sprintf("%3d",int((systime()-t)/(60*60*24)))"]"
  31.         print "|"$0"|"
  32. }
复制代码


awk -f test.awk b.txt a.txt
  1. |No|SF------|PTS--------[S]|Severity|Priority|Description-------------------------------------------------------|CUSTOMER----------|State----------------|ReportedOn[Day]|
  2. | 1|00232281|NSPD-251444[U]|Major   |Medium  |Why there is PmFileNotificationMissing alarm on NSP? How to clea..|OOREDOO MYANMAR ..|Responded in Progress|2020-02-07[ 30]|
  3. | 2|00237425|na            |Major   |Low     |We have an issue February 11, 2020 measurement missing at G2102 ..|PT HUTCHISON 3 I..|Responded in Progress|2020-02-12[ 25]|
  4. | 3|00239567|NSPD-263724[*]|Minor   |Medium  |Create an alarm in NFM-P when the KPI 93VS.rateLimitMaxTps94 is ..|OOREDOO MYANMAR ..|Responded in Progress|2020-02-19[ 18]|
复制代码



评分

参与人数 1可用积分 +20 收起 理由
飘絮絮絮丶 + 20 赞一个!

查看全部评分

论坛徽章:
0
发表于 2020-03-08 12:22 |显示全部楼层
out.gif
效果如图。

论坛徽章:
17
辰龙
日期:2014-05-21 21:01:4115-16赛季CBA联赛之北控
日期:2016-11-28 18:26:3815-16赛季CBA联赛之佛山
日期:2016-11-03 11:18:5815-16赛季CBA联赛之辽宁
日期:2016-07-10 16:09:4115-16赛季CBA联赛之江苏
日期:2016-02-20 23:09:202015亚冠之塔什干棉农
日期:2015-08-17 19:49:492015年亚洲杯之日本
日期:2015-04-30 01:24:342015年亚洲杯之约旦
日期:2015-04-01 00:37:182015年亚洲杯之沙特阿拉伯
日期:2015-03-02 15:55:40处女座
日期:2014-05-25 10:34:0015-16赛季CBA联赛之深圳
日期:2016-12-23 13:51:38
发表于 2020-03-08 17:16 |显示全部楼层
非常感谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

SACC2021中国系统架构师大会

【数字转型 架构重塑】2021年5月20日-22日第十三届中国系统架构师大会将在云端进行网络直播。

大会为期3天的议程,涉及20+专场,近120个主题,完整迁移到线上进行网络直播对会议组织来说绝非易事;但考虑到云端会议的直播形式可以实现全国各地技术爱好者的参与,也使ITPUB作为技术共享交流平台得到更好的普及,我们决定迎难而上。
http://sacc.it168.com/


大会官网>>
  

北京盛拓优讯信息技术有限公司. 版权所有 16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP