免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 6023 | 回复: 2
打印 上一主题 下一主题

[文本处理] 文本处理-升级时间线 [复制链接]

论坛徽章:
18
辰龙
日期:2014-05-21 21:01:4115-16赛季CBA联赛之深圳
日期:2016-12-23 13:51:3815-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:0020周年集字徽章-年
日期:2023-04-23 11:17:52
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2022-01-13 11:16 |只看该作者 |倒序浏览
本帖最后由 bikkuri 于 2022-01-14 22:17 编辑

大家好,我有一个问题向大家请教。
有这样一个文本,是数据库的查询结果,每条记录包括UPGRADETIME(升级时间), DISPLAYEDUPGRADETIME(显示升级时间), FROMSCHEMAVERSION(起始版本), TOSCHEMAVERSION(目的版本)四项内容。
以下是一个样本:
[root@cat1:~]# show-upgrade-history

SQL*Plus: Release 19.0.0.0.0 - Production on Thu Jan 13 10:56:23 2022
Version 19.7.0.0.0

Copyright (c) 1982, 2020, Oracle.  All rights reserved.

Last Successful login time: Wed Nov 17 2021 08:10:33 +08:00

Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.7.0.0.0

SQL>
UPGRADETIME
--------------------------------------------------------------------------------
DISPLAYEDUPGRADETIME
--------------------------------------------------------------------------------
FROMSCHEMAVERSION
--------------------------------------------------------------------------------
TOSCHEMAVERSION
--------------------------------------------------------------------------------
1618455746876
2021.04.15-11.02.26
NSP Version 19.9 - Built on Fri Sep 20 11:20:05 EDT 2019
NSP Version 20.6 - Built on Sat Jun 20 04:39:25 EDT 2020


UPGRADETIME
--------------------------------------------------------------------------------
DISPLAYEDUPGRADETIME
--------------------------------------------------------------------------------
FROMSCHEMAVERSION
--------------------------------------------------------------------------------
TOSCHEMAVERSION
--------------------------------------------------------------------------------
1567050072715
2019.08.29-11.41.12
NSP Version 18.9 - Built on Mon Sep 24 07:34:03 EDT 2018
NSP Version 19.6 - Built on Mon Jun 24 06:16:02 EDT 2019


UPGRADETIME
--------------------------------------------------------------------------------
DISPLAYEDUPGRADETIME
--------------------------------------------------------------------------------
FROMSCHEMAVERSION
--------------------------------------------------------------------------------
TOSCHEMAVERSION
--------------------------------------------------------------------------------
1571802180647
2019.10.23-11.43.00
NSP Version 19.6 - Built on Mon Jun 24 06:16:02 EDT 2019
NSP Version 19.9 - Built on Fri Sep 20 11:20:05 EDT 2019


SQL> Disconnected from Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.7.0.0.0
[root@cat1:~]#

希望以UPGRADETIME(升级时间)进行排序,然后以如下方式进行输出一行结果:
18.9___2019.08.29-11.41.12___19.6___2019.10.23-11.43.00___19.9___2021.04.15-11.02.26___20.6

谢谢大家!

论坛徽章:
0
2 [报告]
发表于 2022-01-14 16:29 |只看该作者
建议结果放到notepad++中,行列就明显了。

论坛徽章:
18
辰龙
日期:2014-05-21 21:01:4115-16赛季CBA联赛之深圳
日期:2016-12-23 13:51:3815-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:0020周年集字徽章-年
日期:2023-04-23 11:17:52
3 [报告]
发表于 2022-01-29 19:36 |只看该作者
本帖最后由 bikkuri 于 2022-01-29 19:46 编辑

[root@apaciprtac:/tmp]# sed ':t;N;s/\n/\t/;b t' info|awk '{for(i=1;i<=NF;i++)if($i=="TOSCHEMAVERSION"){j++;u[j,1]=$(i+2);u[j,2]=$(i+3);u[j,3]=$(i+6);u[j,4]=$(i+18)}}END{for(x=1;x<=j;x++)for(y=1;y<=4;y++)print u[x,y]}'
1618455746876
2021.04.15-11.02.26
19.9
20.6
1567050072715
2019.08.29-11.41.12
18.9
19.6
1571802180647
2019.10.23-11.43.00
19.6
19.9
[root@apaciprtac:/tmp]# sed ':t;N;s/\n/\t/;b t' info|awk '{for(i=1;i<=NF;i++)if($i=="TOSCHEMAVERSION"){j++;u[j,1]=$(i+2);u[j,2]=$(i+3);u[j,3]=$(i+6);u[j,4]=$(i+18)}}END{for(x=1;x<=j;x++)print u[x,1], u[x,3]"__"u[x,2]"__"u[x,4]}'
1618455746876 19.9__2021.04.15-11.02.26__20.6
1567050072715 18.9__2019.08.29-11.41.12__19.6
1571802180647 19.6__2019.10.23-11.43.00__19.9
[root@apaciprtac:/tmp]#

接下来要如何排序输出呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP