免费注册 查看新帖 |

Chinaunix

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

[文本处理] AWK将一个文件拆分成多个文件 [复制链接]

论坛徽章:
1
15-16赛季CBA联赛之山东
日期:2016-03-02 14:33:02
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2016-02-01 09:54 |只看该作者 |倒序浏览
原始文件数据;
A文件:
Name        Num        Phone        Date        Message        Id
逾期        00022        00064783B2DA7F486F7D0A464254E8F8        2014-08-25        【天开通信】        1
车主        00022        00704C2C0EF6ADB94CC469DE9842B4F8        2014-09-29        【天开】        1
车主        00022        0089E0C64A7E88740731246E852A10F2        2014-08-25        【天开通信】        1
用户        00022        009AB94CC96E2D7762C81755AEA1B32F        2014-08-25        【天开】        1
房主        00022        00FFAA81D967EFAE0590934F7C61F7FE        2014-08-25        【天开通信】        1
房主        00022        010B7C32A63861B0679B9FCAD67C02F9        2014-08-25        【天开】        1
车主        00022        00064783B2DA7F486F7D0A464254E8F8        2014-08-25        【天开通信】        1
逾期        00022        00704C2C0EF6ADB94CC469DE9842B4F8        2014-09-29        【天通信】        1
逾期        00022        0089E0C64A7E88740731246E852A10F2        2014-08-25        【天信】        1
房主        00022        009AB94CC96E2D7762C81755AEA1B32F        2014-08-25        【天开通信】        1
用户        00022        00FFAA81D967EFAE0590934F7C61F7FE        2014-08-25        【天通信】        1
用户        00022        010B7C32A63861B0679B9FCAD67C02F9        2014-08-25        【开信】        1
需求:根据第一列Name的不同分别将原始文件A文件拆分为几个不同的文件,文件名以第一列的内容命名,每个文件
第一行都追加Name        Num        Phone        Date        Message        Id这一行作为第一行的内容
用户 文件
Num        Phone        Date        Message        Id        Gudge        Money
用户        00022        00FFAA81D967EFAE0590934F7C61F7FE        2014-08-25        【天开通信】        1
用户        00022        010B7C32A63861B0679B9FCAD67C02F9        2014-08-25        【天开通信】        1
用户        00022        009AB94CC96E2D7762C81755AEA1B32F        2014-08-25        【天开通信】        1
房主 文件
Num        Phone        Date        Message        Id        Gudge        Money
房主        00022        00FFAA81D967EFAE0590934F7C61F7FE        2014-08-25        【天开通信】        1
房主        00022        010B7C32A63861B0679B9FCAD67C02F9        2014-08-25        【天开通信】        1
房主        00022        009AB94CC96E2D7762C81755AEA1B32F        2014-08-25        【天开通信】        1
逾期 文件
Num        Phone        Date        Message        Id        Gudge        Money
逾期        00022        00064783B2DA7F486F7D0A464254E8F8        2014-08-25        【天开通信】        1
逾期        00022        00704C2C0EF6ADB94CC469DE9842B4F8        2014-09-29        【天开通信】        1
逾期        00022        0089E0C64A7E88740731246E852A10F2        2014-08-25        【天开通信】        1
车主 文件
Num        Phone        Date        Message        Id        Gudge        Money
车主        00022        00704C2C0EF6ADB94CC469DE9842B4F8        2014-09-29        【天开通信】        1
车主        00022        00064783B2DA7F486F7D0A464254E8F8        2014-08-25        【天开通信】        1
车主        00022        0089E0C64A7E88740731246E852A10F2        2014-08-25        【天开通信】        1

将原始文件A文件 根据第一列内容的不同将文件内容拆分成几个不同的文件,分别以第一列的内容 为文件名
拆分后的每个文件都追加Num        Phone        Date        Message        Id        Gudge        Money作为文件的第一行

论坛徽章:
1
15-16赛季CBA联赛之山东
日期:2016-03-02 14:33:02
2 [报告]
发表于 2016-02-01 10:16 |只看该作者
awk '{print >$1".txt"}' file
怎么在拆分文件的同时每个文件都追加Num        Phone        Date        Message        Id        Gudge        Money作为文件的第一行???

论坛徽章:
20
程序设计版块每日发帖之星
日期:2015-10-11 06:20:0015-16赛季CBA联赛之山东
日期:2016-05-28 18:18:5615-16赛季CBA联赛之新疆
日期:2017-04-12 22:55:4715-16赛季CBA联赛之青岛
日期:2017-06-26 18:30:0315-16赛季CBA联赛之四川
日期:2017-09-04 12:27:0315-16赛季CBA联赛之福建
日期:2018-02-09 14:28:3315-16赛季CBA联赛之同曦
日期:2018-04-17 12:43:3415-16赛季CBA联赛之浙江
日期:2018-07-14 13:27:4015-16赛季CBA联赛之吉林
日期:2018-09-13 15:48:2915-16赛季CBA联赛之新疆
日期:2016-05-07 05:05:3215-16赛季CBA联赛之八一
日期:2016-03-14 12:32:06程序设计版块每日发帖之星
日期:2015-12-12 06:20:00
3 [报告]
发表于 2016-02-01 10:27 |只看该作者
awk 'BEGIN{print "Num\tPhone\tDate\tMessage\tId\tGudge\tMoney"}'

论坛徽章:
145
技术图书徽章
日期:2013-10-01 15:32:13戌狗
日期:2013-10-25 13:31:35金牛座
日期:2013-11-04 16:22:07子鼠
日期:2013-11-18 18:48:57白羊座
日期:2013-11-29 10:09:11狮子座
日期:2013-12-12 09:57:42白羊座
日期:2013-12-24 16:24:46辰龙
日期:2014-01-08 15:26:12技术图书徽章
日期:2014-01-17 13:24:40巳蛇
日期:2014-02-18 14:32:59未羊
日期:2014-02-20 14:12:13白羊座
日期:2014-02-26 12:06:59
4 [报告]
发表于 2016-02-01 10:33 |只看该作者
回复 1# 寂寞卜孤单

$ awk 'NR==1{h=$0;next}{F=$1".txt";if(!a[$1]++)print h>F;print >F}' FILE

$ grep -c . *.txt
房主.txt:4
用户.txt:4
车主.txt:4
逾期.txt:4

$ grep Name *.txt
房主.txt:Name        Num        Phone        Date        Message        Id
用户.txt:Name        Num        Phone        Date        Message        Id
车主.txt:Name        Num        Phone        Date        Message        Id
逾期.txt:Name        Num        Phone        Date        Message        Id

   

评分

参与人数 1信誉积分 +5 收起 理由
寂寞卜孤单 + 5 赞一个!

查看全部评分

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

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP