免费注册 查看新帖 |

ChinaUnix.net

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

[文本处理] 如何将一个文件内容按照某行截取文件内容并输出 [复制链接]

论坛徽章:
0
发表于 2019-01-02 13:56 |显示全部楼层
文件中内容如下,想以红色字体为分隔符,截取每个红色字体之前的内容生成一个文件。文件的行数是不固定的,每次数据行数都不一样。但是 0 rows affected,这个是一定有的,所以想以此作为分割符。请高手指教如何能够实现?
CTY,COMM_YR,COMM_MTH,SEQ_NO,LAST_UPT_CTY,LAST_UPT_ID,LAST_UPT_TIME
559,2018,10,1,   ,FMSCCCM ,2018-10-19 15:04:55.511
602,2018,10,1,602,44638994,2018-10-22 02:49:28.944
608,2018,10,1,608,44638994,2018-10-22 02:49:28.946
JP1,2018,10,1,JP1,44638994,2018-10-22 02:49:29.102
897,2018,12,1,   ,FMSCCCM ,2018-10-19 15:19:15.305
111,2018,10,1,602,FMSCCCM ,2018-10-19 15:04:55.0
0 rows affected
TRFM_FILE_MSTR_TGT_ID,PROC_STEP_ID,TARGET_FILE_FORMAT_ID,TRFM_FILE_MSTR_ID,TARGET_FILE_CD,TARGET_FILE_NAME,TARGET_TRIGGER_JOB,APPR_STATUS,LAST_ACT_USER_ID,CREATE_TIMESTAMP,LAST_UPT_TIME,LAST_ACT_SYS_CD
7,4,4,4,CD1                                                                                                                                                                                                     ,CODE-1                                                                                                                                                                                                  ,FMSBMTR1                                                                                                                                                                                                ,Approved  ,201682,2018-12-18 10:54:09.46366,2018-12-18 10:54:09.46366,null
5,3,3,3,CD1                                                                                                                                                                                                     ,CODE-1                                                                                                                                                                                                  ,FMSBMTR1                                                                                                                                                                                                ,Approved  ,201682,2018-12-18 10:54:09.565309,2018-12-18 10:54:09.565309,null
3,2,2,2,CD1                                                                                                                                                                                                     ,CODE-1                                                                                                                                                                                                  ,FMSBMTR1                                                                                                                                                                                                ,Approved  ,201682,2018-12-18 10:54:09.566149,2018-12-18 10:54:09.566149,null
1,1,1,1,CD1                                                                                                                                                                                                     ,CODE-1                                                                                                                                                                                                  ,FMSBMTR1                                                                                                                                                                                                ,Approved  ,201682,2018-12-18 10:54:09.567031,2018-12-18 10:54:09.567031,null
0 rows affected
PROC_FUNC_RULE_ID,FUNC_RULE_SEQ,PROCESS_TYPE_ID,PROC_FUNC_ID,APPR_STATUS,LAST_ACT_USER_ID,CREATE_TIMESTAMP,LAST_UPT_TIME,LAST_ACT_SYS_CD
1,1,1,1,Approved  ,201682,2018-12-18 10:52:55.331338,2018-12-18 10:52:55.331338,null
2,2,2,2,Approved  ,201682,2018-12-18 10:52:55.452795,2018-12-18 10:52:55.452795,null
3,3,3,3,Approved  ,201682,2018-12-18 10:52:55.453532,2018-12-18 10:52:55.453532,null
4,4,4,4,Approved  ,201682,2018-12-18 10:52:55.454214,2018-12-18 10:52:55.454214,null
0 rows affected



论坛徽章:
0
发表于 2019-01-02 19:22 |显示全部楼层
可不可以把0 rows affected 整体作为一个分隔符呢? awk可以这么做吗?

论坛徽章:
0
发表于 2019-01-05 16:56 |显示全部楼层
win,linux 通用的 powershell:

  1. $a = get-content /tmp/你的文件.txt -raw
  2. $b = $a.split('0 rows affected')
  3. for ($i = 0;$i -lt $b.length;$i++)
  4. {
  5.    set-content -path /tmp/$i.txt -value $b[$i]  -encoding utf8
  6. }
复制代码


脚本我没测试,你自己测试下。


ps第8课:用powershell读写文本、二进制文件。
http://bbs.chinaunix.net/thread-4266404-1-1.html

论坛徽章:
0
发表于 2019-01-05 16:58 |显示全部楼层
win,linux 通用的 powershell:

  1. $a = get-content /tmp/你的文件.txt -raw
  2. $b = $a.split('0 rows affected')
  3. for ($i = 0;$i -lt $b.length;$i++)
  4. {
  5.    set-content -path /tmp/$i.txt -value $b[$i]  -encoding utf8
  6. }
复制代码


脚本我没测试,你自己测试下。


ps第8课:用powershell读写文本、二进制文件。
http://bbs.chinaunix.net/thread-4266404-1-1.html

论坛徽章:
7
15-16赛季CBA联赛之同曦
日期:2016-06-11 19:22:41程序设计版块每日发帖之星
日期:2016-07-04 06:20:00程序设计版块每日发帖之星
日期:2016-07-06 06:20:00程序设计版块每日发帖之星
日期:2016-07-12 06:20:00每日论坛发贴之星
日期:2016-07-12 06:20:00程序设计版块每日发帖之星
日期:2016-08-09 06:20:00每日论坛发贴之星
日期:2016-08-09 06:20:00
发表于 2019-01-09 10:42 |显示全部楼层
[root@lp ~]# cat tmp
12
123
123
123
123
123
xxoo
afgs
dgsdg
sgd
sdg
saf
xxoo
trtr34gher
erty
3w4ty3
xxoo
wr13wgwgsdgasdX
AS
A
[root@lp ~]# cat tmp|awk 'BEGIN{RS="xxoo"}{print $0 >FNR".tmp"}'
[root@lp ~]# ls
1.tmp    3.tmp    dos      file1    hello.c
2.tmp    4.tmp    file     file2    tmp

论坛徽章:
0
发表于 2019-01-09 14:17 |显示全部楼层
回复 5# ll104567

厉害!

论坛徽章:
0
发表于 2019-01-17 20:31 |显示全部楼层
多谢各位!
还可以这么写

#!/bin/bash
i=0
while read line  
do
        if [[ $line =~ '0 rows affected'  ]];then
                ((i++))
        else
                echo $line >> $i.txt
        fi
done < abc.txt
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

基于案例的 SQL 优化实战训练营

讲师:中电福富特级专家梁敬彬,参与本次课程培训,你将收获:
1. 能编写出较为高效的 SQL;
2. 能解决70%以上的数据库常见优化问题;
3. 能得到老师提供的高效的相关工具和解决方案;
4. 能举一反三,收获不仅仅是 SQL 优化。
现在购票享受8.8折优惠!
----------------------------------------
优惠时间:2019年3月20日前

大会官网>>
  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP