免费注册 查看新帖 |

Chinaunix

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

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

论坛徽章:
0
跳转到指定楼层
1 [收藏(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
2 [报告]
发表于 2019-01-02 19:22 |只看该作者
可不可以把0 rows affected 整体作为一个分隔符呢? awk可以这么做吗?

论坛徽章:
0
3 [报告]
发表于 2019-01-05 16:56 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
4 [报告]
发表于 2019-01-05 16:58 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
10
15-16赛季CBA联赛之同曦
日期:2016-06-11 19:22:4115-16赛季CBA联赛之深圳
日期:2020-05-31 16:13:5615-16赛季CBA联赛之同曦
日期:2020-01-28 12:42:47每日论坛发贴之星
日期:2016-08-09 06:20:00程序设计版块每日发帖之星
日期:2016-08-09 06:20:00每日论坛发贴之星
日期:2016-07-12 06:20:00程序设计版块每日发帖之星
日期:2016-07-12 06:20:00程序设计版块每日发帖之星
日期:2016-07-06 06:20:00程序设计版块每日发帖之星
日期:2016-07-04 06:20:0015-16赛季CBA联赛之佛山
日期:2021-02-26 09:33:41
5 [报告]
发表于 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
6 [报告]
发表于 2019-01-09 14:17 |只看该作者
回复 5# ll104567

厉害!

论坛徽章:
0
7 [报告]
发表于 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
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP