免费注册 查看新帖 |

Chinaunix

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

如何截取文件中多处首尾相同的段到不同的文件中去 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-09-16 15:08 |只看该作者 |倒序浏览
比如一个文件

START
...
END
...
START
...
END


awk '/START/,/END/ {print}' file
会把两段都截取出来

[ 本帖最后由 richiewu 于 2009-9-16 15:10 编辑 ]

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
2 [报告]
发表于 2009-09-16 15:19 |只看该作者
csplit

论坛徽章:
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
3 [报告]
发表于 2009-09-16 15:23 |只看该作者
未测试,try 1 try吧
awk '/START/,/END/ {print >"split"NR}' file

论坛徽章:
0
4 [报告]
发表于 2009-09-16 15:33 |只看该作者

回复 #3 r2007 的帖子

一行一个文件,看来得加加条件,我再看看

论坛徽章:
1
数据库技术版块每日发帖之星
日期:2016-01-24 06:20:00
5 [报告]
发表于 2009-09-16 15:34 |只看该作者
  1. awk '/START/,/END/{if(!a)a=1;print > a".txt";if($0~/END/)a++}' file
复制代码

论坛徽章:
0
6 [报告]
发表于 2009-09-16 15:51 |只看该作者

回复 #5 Minsic 的帖子

这个可以

论坛徽章:
0
7 [报告]
发表于 2009-09-16 16:52 |只看该作者
bash-3.00# cat 1.txt
Content-Length: 2

dfgfdgdfgfdgdfgh554yjukiewr32


SMS sent date Mon Sep 14 08:36:30 CST 2009
Content-Length: 41

22222sdsd322222222222222dssd2



SMS sent date Mon Sep 14 08:37:01 CST 2009
Content-Length: 37

qqq44444224444444wq4444444444

我的怎么是放在一个文件里面了
执行 awk '/Content-Length:*/,/SMS sent date*/{if(!a)a=1;print > a".txt";if($0~/END/)a++}' sam

文件内容如下  

bash-3.00# cat sam
SMS sent date Mon Sep 14 08:36:00 CST 2009
From sam.ma@usms.com.tw Mon Sep 14 08:35:51 2009
Return-Path: <sam.ma@usms.com.tw>
Received: from mail24.usms.com.tw ([10.88.0.58])
        by sms.usms.com.cn (8.12.10+Sun/8.12.10) with ESMTP id n8E0ZoPO006129
        for <sms13405179317@sms.usms.com.cn>; Mon, 14 Sep 2009 08:35:51 +0800 (CST)
Received: from localhost.localdomain (unknown [127.0.0.1])
        by mail24.usms.com.tw (Postfix) with ESMTP id DEE472A8
        for <sms13405179317@sms.usms.com.cn>; Mon, 14 Sep 2009 08:35:42 +0800 (CST)
X-Mailbox-Line: From sam.ma@usms.com.tw  Mon Sep 14 08:35:42 2009
Received: from localhost.localdomain ([127.0.0.1])
by localhost (mail24.usms.com.tw [127.0.0.1]) (amavisd-new, port 10023)
with ESMTP id 09602-08 for <sms13405179317@sms.usms.com.cn>;
Mon, 14 Sep 2009 08:35:42 +0800 (CST)
Received: from KSEXFE01.usmsad.com (unknown [10.87.0.222])
        by mail24.usms.com.tw (Postfix) with ESMTP id 679862A8
        for <sms13405179317@sms.usms.com.cn>; Mon, 14 Sep 2009 08:35:40 +0800 (CST)
Received: from KSEXVS02.usmsad.com ([10.87.0.225]) by KSEXFE01.usmsad.com with usmsrosoft SMTPSVC

(6.0.3790.3959);
         Mon, 14 Sep 2009 08:35:42 +0800
X-MimeOLE: Produced By usmsrosoft Exchange V6.5
Content-class: urn:content-classes:message
MIME-Version: 1.0
Content-Type: text/plain;
        charset="big5"
Subject: 11111111111111111111111111111111111111
Date: Mon, 14 Sep 2009 08:35:42 +0800
Message-ID: <4FAD967C25548840807E3B7A4EFD7EDB0BB5D1CA@KSEXVS02.usmsad.com>
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
Thread-Topic: 11111111111111111111111111111111111111
Thread-Index: Aco000o3ZQGfGAKnT9iOqfJ75l3RkQ==
From: <sam.ma@usms.com.tw>
To: <sms13405179317@sms.usms.com.cn>
X-OriginalArrivalTime: 14 Sep 2009 00:35:42.0879 (UTC) FILETIME=[4AA8A2F0:01CA34D3]
X-FromFirstip: 10.87.0.225
X-FromLastip: 10.87.0.222
X-FromSecondip: 10.87.0.222
X-MAIL-FROM: sam.ma@usms.com.tw
X-RFromDomain: usms.com.tw
X-RToDomain: sms.usms.com.cn
X-Serial: sam.ma@usms.com.tw-2009-09-14-08:35:40-0.10534195145064
X-Size: 1022
Content-Transfer-Encoding: 8bit
X-MIME-Autoconverted: from quoted-printable to 8bit by sms.usms.com.cn id n8E0ZoPO006129
Content-Length: 2

dfgfdgdfgfdgdfgh554yjukiewr32


SMS sent date Mon Sep 14 08:36:30 CST 2009
From sam.ma@usms.com.tw Mon Sep 14 08:36:06 2009
Return-Path: <sam.ma@usms.com.tw>
Received: from mail23.usms.com.tw ([10.88.0.58])
        by sms.usms.com.cn (8.12.10+Sun/8.12.10) with ESMTP id n8E0a5PO006230
        for <sms13405179317@sms.usms.com.cn>; Mon, 14 Sep 2009 08:36:05 +0800 (CST)
Received: from localhost.localdomain (unknown [127.0.0.1])
        by mail23.usms.com.tw (Postfix) with ESMTP id B79D4F1F
        for <sms13405179317@sms.usms.com.cn>; Mon, 14 Sep 2009 08:35:59 +0800 (CST)
X-Mailbox-Line: From sam.ma@usms.com.tw  Mon Sep 14 08:35:59 2009
Received: from localhost.localdomain ([127.0.0.1])
by localhost (mail23.usms.com.tw [127.0.0.1]) (amavisd-new, port 10023)
with ESMTP id 07413-01 for <sms13405179317@sms.usms.com.cn>;
Mon, 14 Sep 2009 08:35:59 +0800 (CST)
Received: from KSEXFE01.usmsad.com (ksexfe01.usmsad.com [10.87.0.222])
        by mail23.usms.com.tw (Postfix) with ESMTP id E7F07F2A
        for <sms13405179317@sms.usms.com.cn>; Mon, 14 Sep 2009 08:35:54 +0800 (CST)
Received: from KSEXVS02.usmsad.com ([10.87.0.225]) by KSEXFE01.usmsad.com with usmsrosoft SMTPSVC

(6.0.3790.3959);
         Mon, 14 Sep 2009 08:35:54 +0800
X-MimeOLE: Produced By usmsrosoft Exchange V6.5
Content-class: urn:content-classes:message
MIME-Version: 1.0
Content-Type: text/plain;
        charset="big5"
Subject:
Date: Mon, 14 Sep 2009 08:35:54 +0800
Message-ID: <4FAD967C25548840807E3B7A4EFD7EDB0BB5D1CB@KSEXVS02.usmsad.com>
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
Thread-Index: Aco001GE6No241wUQmKxuLfycX5e0A==
From: <sam.ma@usms.com.tw>
To: <sms13405179317@sms.usms.com.cn>
X-OriginalArrivalTime: 14 Sep 2009 00:35:55.0129 (UTC) FILETIME=[51F5D690:01CA34D3]
X-FromFirstip: 10.87.0.225
X-FromLastip: 10.87.0.222
X-FromSecondip: 10.87.0.222
X-MAIL-FROM: sam.ma@usms.com.tw
X-RFromDomain: usms.com.tw
X-RToDomain: sms.usms.com.cn
X-Serial: sam.ma@usms.com.tw-2009-09-14-08:35:55-0.332014860917958
X-Size: 981
Content-Transfer-Encoding: 8bit
X-MIME-Autoconverted: from quoted-printable to 8bit by sms.usms.com.cn id n8E0a5PO006230
Content-Length: 41

22222sdsd322222222222222dssd2



SMS sent date Mon Sep 14 08:37:01 CST 2009
From sam.ma@usms.com.tw Mon Sep 14 08:36:31 2009
Return-Path: <sam.ma@usms.com.tw>
Received: from mail24.usms.com.tw ([10.88.0.58])
        by sms.usms.com.cn (8.12.10+Sun/8.12.10) with ESMTP id n8E0aVPO006566
        for <sms13405179317@sms.usms.com.cn>; Mon, 14 Sep 2009 08:36:31 +0800 (CST)
Received: from localhost.localdomain (unknown [127.0.0.1])
        by mail24.usms.com.tw (Postfix) with ESMTP id 147B8FE
        for <sms13405179317@sms.usms.com.cn>; Mon, 14 Sep 2009 08:36:23 +0800 (CST)
X-Mailbox-Line: From sam.ma@usms.com.tw  Mon Sep 14 08:36:22 2009
Received: from localhost.localdomain ([127.0.0.1])
by localhost (mail24.usms.com.tw [127.0.0.1]) (amavisd-new, port 10023)
with ESMTP id 10855-05 for <sms13405179317@sms.usms.com.cn>;
Mon, 14 Sep 2009 08:36:22 +0800 (CST)
Received: from KSEXFE01.usmsad.com (unknown [10.87.0.222])
        by mail24.usms.com.tw (Postfix) with ESMTP id 8FEBCFE
        for <sms13405179317@sms.usms.com.cn>; Mon, 14 Sep 2009 08:36:20 +0800 (CST)
Received: from KSEXVS02.usmsad.com ([10.87.0.225]) by KSEXFE01.usmsad.com with usmsrosoft SMTPSVC

(6.0.3790.3959);
         Mon, 14 Sep 2009 08:36:22 +0800
X-MimeOLE: Produced By usmsrosoft Exchange V6.5
Content-class: urn:content-classes:message
MIME-Version: 1.0
Content-Type: text/plain;
        charset="big5"
Subject: 3333333333333333333333333333
Date: Mon, 14 Sep 2009 08:36:22 +0800
Message-ID: <4FAD967C25548840807E3B7A4EFD7EDB0BB5D1D0@KSEXVS02.usmsad.com>
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
Thread-Topic: 3333333333333333333333333333
Thread-Index: Aco002IJA7gbXlE6SYipctyDKvl+Jw==
From: <sam.ma@usms.com.tw>
To: <sms13405179317@sms.usms.com.cn>
X-OriginalArrivalTime: 14 Sep 2009 00:36:22.0910 (UTC) FILETIME=[6284E1E0:01CA34D3]
X-FromFirstip: 10.87.0.225
X-FromLastip: 10.87.0.222
X-FromSecondip: 10.87.0.222
X-MAIL-FROM: sam.ma@usms.com.tw
X-RFromDomain: usms.com.tw
X-RToDomain: sms.usms.com.cn
X-Serial: sam.ma@usms.com.tw-2009-09-14-08:36:20-0.301678336411797
X-Size: 1035
Content-Transfer-Encoding: 8bit
X-MIME-Autoconverted: from quoted-printable to 8bit by sms.usms.com.cn id n8E0aVPO006566
Content-Length: 37

qqq44444224444444wq4444444444

论坛徽章:
0
8 [报告]
发表于 2009-09-16 17:01 |只看该作者
awk '/Content-Length:*/,/SMS sent date*/ {print >"split"NR}' sam

很接近 版主 帮忙看看
bash-3.00# ls
erp12_Language  mkldba          sam1            split48         split51         split98         test
log             old             split100        split49         split52         split99         zabbix
lost+found      sam             split47         split50         split97         stage12         zabbix1
bash-3.00# cat split100  

bash-3.00# cat split47
Content-Length: 2
bash-3.00# cat split48

bash-3.00# cat split49
dfgfdgdfgfdgdfgh554yjukiewr32
bash-3.00# cat split50

bash-3.00# cat split51

bash-3.00# cat split52
SMS sent date Mon Sep 14 08:36:30 CST 2009
bash-3.00# cat split97
Content-Length: 41
bash-3.00# cat split98

bash-3.00# cat split99
22222sdsd322222222222222dssd2
bash-3.00# cat split99
22222sdsd322222222222222dssd2

空的可以消除 可是把头和尾也截取了

论坛徽章:
0
9 [报告]
发表于 2009-09-16 17:03 |只看该作者
richiewu
你用的是什么shell

论坛徽章:
0
10 [报告]
发表于 2009-09-16 17:24 |只看该作者
bash-3.00# awk '/Content-Length:*/,/SMS sent date*/{if(!a)a=1;print > a".txt";if($0~/SMS sent date*/)a++}' sam
bash-3.00# ls
1.txt           3.txt           log             mkldba          sam             stage12         zabbix
2.txt           erp12_Language  lost+found      old             sam1            test            zabbix1
bash-3.00# cat 1.txt
Content-Length: 2

dfgfdgdfgfdgdfgh554yjukiewr32


SMS sent date Mon Sep 14 08:36:30 CST 2009
bash-3.00# cat 2.txt
Content-Length: 41

22222sdsd322222222222222dssd2



SMS sent date Mon Sep 14 08:37:01 CST 2009
bash-3.00# cat  3.txt
Content-Length: 37
qqq44444224444444wq4444444444




bash-3.00#
没过滤掉

[ 本帖最后由 xin2v 于 2009-9-16 17:38 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP