免费注册 查看新帖 |

Chinaunix

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

请教关于取文本的几个小问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-04-11 14:16 |只看该作者 |倒序浏览
比如说有很多类似的文件,名称为 db_ora1_1122.trc, db_ora1_1123.trc, db_ora2_2122.trc,等等,每个文件中前几行的内容如下:

*** SESSION ID498.5617 2005-04-09 14:05:23.071
*** 2005-04-09 14:05:23.071
ksedmp: internal or fatal error
ORA-01652: unable to extend temp segment by 128 in tablespace TEMP
Current SQL statement for this session:
select count(*) from (select c.*,d.........
----- Call Stack Trace -----

。。。。。。(后面还有很多)

有两个问题想请教大家;
1,如果像把每个文件中的第6行,取出来,然后放到一个单独的文件中,然后追加到新文件中一个空行,然后再取一个行,追加到其中。。。
2,如果想把每个文件的以“Current SQL statement for this session:”开头的一行开始,顺次取5行,然后追加到新文件中一个空行,然后再取另一个文件的,。。。。。
3,如果想把每个文件的以“Current SQL statement for this session:”开头,以“----- Call Stack Trace -----”结尾的一段话放到一个单独的文件中,然后追加到新文件中一个空行,然后再取另一个文件的,。。。。。

先解过各位大侠。

论坛徽章:
8
摩羯座
日期:2014-11-26 18:59:452015亚冠之浦和红钻
日期:2015-06-23 19:10:532015亚冠之西悉尼流浪者
日期:2015-08-21 08:40:5815-16赛季CBA联赛之山东
日期:2016-01-31 18:25:0515-16赛季CBA联赛之四川
日期:2016-02-16 16:08:30程序设计版块每日发帖之星
日期:2016-06-29 06:20:002017金鸡报晓
日期:2017-01-10 15:19:5615-16赛季CBA联赛之佛山
日期:2017-02-27 20:41:19
2 [报告]
发表于 2005-04-11 14:32 |只看该作者

请教关于取文本的几个小问题

for i in db_ora*.trc; do sed -ne '6{G;p;q}'  ; done >your-file

其它类推

论坛徽章:
0
3 [报告]
发表于 2005-04-18 09:53 |只看该作者

请教关于取文本的几个小问题

多谢 waker了,呵呵。

我是新手,手笨,可不可以再帮忙考虑一个问题啊:
比如,file1中有类似如下的内容:
err001... info...
aaaaa
bbbbb
trace file name is db_trace1_aaa.trc
...
err001... info...
ccccc
bbbbb
trace file name is db_trace2_bbb.trc
...

等等,也就是说,file1中,凡是以“err001”开头到“trace file name”的结尾的这些片断的内容是我需要的一部分信息。其中,db_trace1_aaa.trc和db_trace2_bbb.trc等等的trace文件中记录了关于err001这个错误的相关跟踪信息。我希望提取这部分内容放到一个log文件中,另外还有下面的:

db_trace1_aaa.trc等trace文件的内容类似于:

*** SESSION ID498.5617 2005-04-09 14:05:23.071
*** 2005-04-09 14:05:23.071
ksedmp: internal or fatal error
ORA-01652: unable to extend temp segment by 128 in tablespace TEMP
Current SQL statement for this session:
select count(*) from (select c.*,d.........
----- Call Stack Trace -----

。。。。。。(后面还有很多)

我希望提取每个跟踪文件的这部分内容再写入到一个log文件中。

也就是说,最后生成的log文件的内容如下:
err001... info...
aaaaa
bbbbb
trace file name is db_trace1_aaa.trc

*** SESSION ID498.5617 2005-04-09 14:05:23.071
*** 2005-04-09 14:05:23.071
ksedmp: internal or fatal error
ORA-01652: unable to extend temp segment by 128 in tablespace TEMP
Current SQL statement for this session:
select count(*) from (select c.*,d.........
----- Call Stack Trace -----


err001... info...
ccccc
bbbbb
trace file name is db_trace2_bbb.trc

*** SESSION ID111.5617222) 2005-04-09 14:05:23.071
*** 2005-06-29 02:05:23.071
ksedmp: internal or fatal error
ORA-01652: unable to extend temp segment by 128 in tablespace TEMP
Current SQL statement for this session:
select count(*) from (select c.*,d.........
----- Call Stack Trace -----


请问,大侠这个如何实现比较好啊?

也就是说,读取一个文件的一段关键文字,得到trace文件名称等关键信息,再去这个trace文件中读取一段详细的错误信息。

先谢过大侠了。

论坛徽章:
0
4 [报告]
发表于 2005-04-18 18:11 |只看该作者

请教关于取文本的几个小问题

up

论坛徽章:
0
5 [报告]
发表于 2005-04-19 09:07 |只看该作者

请教关于取文本的几个小问题

这么多大侠,哪位大侠帮忙看看吧,多谢了

论坛徽章:
7
荣誉版主
日期:2011-11-23 16:44:17子鼠
日期:2014-07-24 15:38:07狮子座
日期:2014-07-24 11:00:54巨蟹座
日期:2014-07-21 19:03:10双子座
日期:2014-05-22 12:00:09卯兔
日期:2014-05-08 19:43:17卯兔
日期:2014-08-22 13:39:09
6 [报告]
发表于 2005-04-19 13:40 |只看该作者

请教关于取文本的几个小问题

用awk就可以实现,先找到错误片断写入log,然后找到关联文件,打开并
截取一段一并放入log。
只要把getline 命令用好就可以了。还有close,文件多了要及时关闭。

论坛徽章:
0
7 [报告]
发表于 2005-04-19 15:29 |只看该作者

请教关于取文本的几个小问题

非常感谢您的思路了,不过兄弟我最近学习shell的时间不常,这个活也是个着急的活,能够请兄弟帮忙给出一段实例代码,实在不好意思了,先写过大侠了。

论坛徽章:
7
荣誉版主
日期:2011-11-23 16:44:17子鼠
日期:2014-07-24 15:38:07狮子座
日期:2014-07-24 11:00:54巨蟹座
日期:2014-07-21 19:03:10双子座
日期:2014-05-22 12:00:09卯兔
日期:2014-05-08 19:43:17卯兔
日期:2014-08-22 13:39:09
8 [报告]
发表于 2005-04-19 22:33 |只看该作者

请教关于取文本的几个小问题

不会是给JP卖命吧,那我就惨了。
  1. awk '/^err001/{print;getline;print;getline;print;getline;print
  2. ;f=$5;while($0!~"----- Call Stack Trace -----"){getline<f;print;};close(f);}' file1
复制代码

论坛徽章:
0
9 [报告]
发表于 2005-06-28 10:30 |只看该作者

请教关于取文本的几个小问题

非常感谢老大的例子,呵呵 :)

btw:
JP是什么阿?

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
10 [报告]
发表于 2005-06-28 10:43 |只看该作者

请教关于取文本的几个小问题

日本
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP