免费注册 查看新帖 |

Chinaunix

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

[文本处理] 文件行合并 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-04-12 11:50 |只看该作者 |倒序浏览
A类文件,文件名中带001,有N多个,每个文件有N多行
文件内容如下,字段分隔符为|
001-1.txt
20130326073120|3|B2D1C3D4|136F7B1E|20A3E77|91604|95588|UNICOM|000000000000000000000|101650|0
20130326073120|3|B2D1C3D4|136F7B1F|1F71075|91604|95588|UNICOM|000000000000000000000|8189|0
001-2.txt
20130326073120|3|B2D1C3D4|136F7B1E|20A3E99|91604|95588|UNICOM|000000000000000000000|101650|0
20130326073120|3|B2D1C3D4|136F7B1F|20A3E10|91604|95588|UNICOM|000000000000000000000|8189|0


B类文件,文件名中带002,有N多个,每个文件有N多行
文件内容如下,字段分割符为|
002-1.txt
20130326043051|0|100003|3000090038|5|B2D1C3D4|136F7B1E|20A3E99|95533|1318
20130326043051|0|100003|3000090038|5|B2D1C3D4|136F7B1E|20A3E77|95533|186
002-2.txt
20130326043051|0|100003|3000090038|5|B2D1BDB6|136F0537|1F8D5ED5|95533|13187
20130326043051|0|100003|3000090038|5|B2D1BDB6|136F058A|13AE675B|95533|18692


把A类文件中第3and4and5字段与 B类文件中6and7and8字段相等的行合并生成到一个新文件中,把不相等的行生成到另一个文件中

论坛徽章:
0
2 [报告]
发表于 2013-04-12 13:18 |只看该作者
回复 1# sunyone
  1. awk -F\| 'FNR==NR&&!/txt/{a[$3$4$5]=$0;next}{if($6$7$8 in a)print a[$6$7$8]>"file1";else print >"file2"}' A B
  2. [root@localhost ~]# cat file1
  3. 20130326073120|3|B2D1C3D4|136F7B1E|20A3E99|91604|95588|UNICOM|000000000000000000000|101650|0
  4. 20130326073120|3|B2D1C3D4|136F7B1E|20A3E77|91604|95588|UNICOM|000000000000000000000|101650|0
  5. [root@localhost ~]# cat file2
  6. 001-1.txt
  7. 001-1.txt
  8. 001-2.txt
  9. 002-1.txt
  10. 002-2.txt
  11. 20130326043051|0|100003|3000090038|5|B2D1BDB6|136F0537|1F8D5ED5|95533|13187
  12. 20130326043051|0|100003|3000090038|5|B2D1BDB6|136F058A|13AE675B|95533|18692
复制代码

论坛徽章:
32
处女座
日期:2013-11-20 23:41:20双子座
日期:2014-06-11 17:20:43戌狗
日期:2014-06-16 11:05:00处女座
日期:2014-07-22 17:30:47狮子座
日期:2014-07-28 15:38:17金牛座
日期:2014-08-05 16:34:01亥猪
日期:2014-08-18 13:34:25白羊座
日期:2014-09-02 15:03:55金牛座
日期:2014-11-10 10:23:58处女座
日期:2014-12-02 09:17:52程序设计版块每日发帖之星
日期:2015-06-16 22:20:002015亚冠之塔什干火车头
日期:2015-06-20 23:28:22
3 [报告]
发表于 2013-04-12 13:35 |只看该作者
把A类文件中第3and4and5字段与 B类文件中6and7and8字段相等的行合并生成到一个新文件中,把不相等的行生成到另一个文件中
这要求看不懂,以你给的那4个文件举个例子吧?

论坛徽章:
0
4 [报告]
发表于 2013-04-12 13:54 |只看该作者
回复 3# yestreenstars


001-1.txt
20130326073120|3|B2D1C3D4|136F7B1E|20A3E77|91604|95588|UNICOM|000000000000000000000|101650|0
002-1.txt
20130326043051|0|100003|3000090038|5|B2D1C3D4|136F7B1E|20A3E77|95533|186

001-1.txt文件中某一行的B2D1C3D4|136F7B1E|20A3E77与
002-1.txt文件中某一行的B2D1C3D4|136F7B1E|20A3E77相同,
则把001中的这行与002中的这行合并为一行,保存另外一个文件

论坛徽章:
16
IT运维版块每日发帖之星
日期:2015-10-02 06:20:00IT运维版块每月发帖之星
日期:2015-09-11 19:30:52IT运维版块每周发帖之星
日期:2015-09-11 19:20:31IT运维版块每日发帖之星
日期:2015-08-26 06:20:00每日论坛发贴之星
日期:2015-08-20 06:20:00IT运维版块每日发帖之星
日期:2015-08-20 06:20:002015年辞旧岁徽章
日期:2015-03-03 16:54:15金牛座
日期:2014-05-04 16:58:09双子座
日期:2013-12-17 16:44:37辰龙
日期:2013-11-22 15:20:59狮子座
日期:2013-11-18 22:55:08射手座
日期:2013-11-12 10:54:26
5 [报告]
发表于 2013-04-12 13:55 |只看该作者
合并成啥样?
另存的只要是不通即可么?

论坛徽章:
0
6 [报告]
发表于 2013-04-12 13:55 |只看该作者
回复 2# peawseshc

大侠,需要把001中的这行与002中这行合并为一行,保存另外一个文件

论坛徽章:
16
IT运维版块每日发帖之星
日期:2015-10-02 06:20:00IT运维版块每月发帖之星
日期:2015-09-11 19:30:52IT运维版块每周发帖之星
日期:2015-09-11 19:20:31IT运维版块每日发帖之星
日期:2015-08-26 06:20:00每日论坛发贴之星
日期:2015-08-20 06:20:00IT运维版块每日发帖之星
日期:2015-08-20 06:20:002015年辞旧岁徽章
日期:2015-03-03 16:54:15金牛座
日期:2014-05-04 16:58:09双子座
日期:2013-12-17 16:44:37辰龙
日期:2013-11-22 15:20:59狮子座
日期:2013-11-18 22:55:08射手座
日期:2013-11-12 10:54:26
7 [报告]
发表于 2013-04-12 13:59 |只看该作者
回复 6# sunyone
if($6$7$8 in a)print a[$6$7$8],$0>"file1"


   

论坛徽章:
32
处女座
日期:2013-11-20 23:41:20双子座
日期:2014-06-11 17:20:43戌狗
日期:2014-06-16 11:05:00处女座
日期:2014-07-22 17:30:47狮子座
日期:2014-07-28 15:38:17金牛座
日期:2014-08-05 16:34:01亥猪
日期:2014-08-18 13:34:25白羊座
日期:2014-09-02 15:03:55金牛座
日期:2014-11-10 10:23:58处女座
日期:2014-12-02 09:17:52程序设计版块每日发帖之星
日期:2015-06-16 22:20:002015亚冠之塔什干火车头
日期:2015-06-20 23:28:22
8 [报告]
发表于 2013-04-12 14:20 |只看该作者
回复 4# sunyone


    那不相等的呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP