免费注册 查看新帖 |

Chinaunix

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

[文本处理] 要这样插入 [复制链接]

论坛徽章:
22
2015年亚洲杯之科威特
日期:2015-04-18 15:27:07每日论坛发贴之星
日期:2016-01-27 06:20:0015-16赛季CBA联赛之广夏
日期:2016-03-28 16:20:51程序设计版块每日发帖之星
日期:2016-04-09 06:20:00CU十四周年纪念徽章
日期:2016-05-03 09:35:1415-16赛季CBA联赛之天津
日期:2016-11-18 08:31:3115-16赛季CBA联赛之山西
日期:2016-12-07 16:29:5315-16赛季CBA联赛之八一
日期:2017-01-10 11:34:3415-16赛季CBA联赛之吉林
日期:2017-03-30 22:51:1915-16赛季CBA联赛之广夏
日期:2017-04-13 20:51:52程序设计版块每日发帖之星
日期:2016-01-27 06:20:00每日论坛发贴之星
日期:2015-12-28 06:20:00
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2017-03-30 22:50 |只看该作者 |倒序浏览
各位好...

有a  b两个文件   a文件大概有100多行,b文件大概有50多行
a文件
1111
222

b文件
/
,
+*?

要将b文件的每行字符分别插入到a文件中的每一个字符位置中去  直到完成a文件长度

两个文件行数大小不一,每行字符也有长短不一  但是有规律的  规律是将b文件内每行看成一个要插入整体

出来后应得结果:

/1111
1/111
11/11
111/1
1111/

/222
2/22
22/2
222/

,1111
1,111
11,11
111,1
1111,

,222
2,22
22,2
222,

+*?1111
1+*?111
11+*?11
111+*?1
1111+*?

+*?222
2+*?22
22+*?2
222+*?

谢谢了...



论坛徽章:
307
程序设计版块每周发帖之星
日期:2016-04-08 00:41:33操作系统版块每日发帖之星
日期:2015-09-02 06:20:00每日论坛发贴之星
日期:2015-09-02 06:20:00程序设计版块每日发帖之星
日期:2015-09-04 06:20:00每日论坛发贴之星
日期:2015-09-04 06:20:00每周论坛发贴之星
日期:2015-09-06 22:22:00程序设计版块每日发帖之星
日期:2015-09-09 06:20:00程序设计版块每日发帖之星
日期:2015-09-19 06:20:00程序设计版块每日发帖之星
日期:2015-09-20 06:20:00每日论坛发贴之星
日期:2015-09-20 06:20:00程序设计版块每日发帖之星
日期:2015-09-22 06:20:00程序设计版块每日发帖之星
日期:2015-09-24 06:20:00
2 [报告]
发表于 2017-03-31 08:36 |只看该作者
本帖最后由 sunzhiguolu 于 2017-03-31 08:38 编辑
  1. #!/usr/bin/perl
  2. use strict;
  3. use warnings;

  4. my @aData = map {[split //]} (1111, 222);    #Load data from File.A
  5. while (<DATA>){
  6.     my $t = $1 if (/(.*)/);
  7.     foreach my $pos (0 .. $#aData){
  8.         my $n = 0;
  9.         {
  10.             my $o = $aData[$pos][$n];
  11.             $aData[$pos][$n] = $t . $aData[$pos][$n];
  12.             print @{$aData[$pos]}, "\n";
  13.             $aData[$pos][$n] = $o;
  14.             redo if ($n++ < $#{$aData[$pos]});
  15.          }
  16.          print @{$aData[$pos]}, "$t\n\n";
  17.     }
  18. }

  19. __DATA__
  20. /
  21. ,
  22. +*?
复制代码
perl abc.pl
-----------------
/1111
1/111
11/11
111/1
1111/

/222
2/22
22/2
222/

,1111
1,111
11,11
111,1
1111,

,222
2,22
22,2
222,

+*?1111
1+*?111
11+*?11
111+*?1
1111+*?

+*?222
2+*?22
22+*?2
222+*?

论坛徽章:
22
2015年亚洲杯之科威特
日期:2015-04-18 15:27:07每日论坛发贴之星
日期:2016-01-27 06:20:0015-16赛季CBA联赛之广夏
日期:2016-03-28 16:20:51程序设计版块每日发帖之星
日期:2016-04-09 06:20:00CU十四周年纪念徽章
日期:2016-05-03 09:35:1415-16赛季CBA联赛之天津
日期:2016-11-18 08:31:3115-16赛季CBA联赛之山西
日期:2016-12-07 16:29:5315-16赛季CBA联赛之八一
日期:2017-01-10 11:34:3415-16赛季CBA联赛之吉林
日期:2017-03-30 22:51:1915-16赛季CBA联赛之广夏
日期:2017-04-13 20:51:52程序设计版块每日发帖之星
日期:2016-01-27 06:20:00每日论坛发贴之星
日期:2015-12-28 06:20:00
3 [报告]
发表于 2017-03-31 09:16 |只看该作者
回复 2# sunzhiguolu

谢谢  结果正确
但每次都要把数据放进脚本中去 将文件写成定向出来更好   像这样perl abc.pl b a

论坛徽章:
39
辰龙
日期:2013-08-21 15:45:192015亚冠之广州富力
日期:2015-05-12 16:34:52亥猪
日期:2015-03-03 17:22:00申猴
日期:2015-03-03 17:21:37未羊
日期:2014-10-10 13:45:41戌狗
日期:2014-06-17 09:53:29巨蟹座
日期:2014-06-12 23:17:17双鱼座
日期:2014-06-10 12:42:44寅虎
日期:2014-06-09 12:52:172015亚冠之卡尔希纳萨夫
日期:2015-05-24 15:24:35黄金圣斗士
日期:2015-12-02 17:25:0815-16赛季CBA联赛之吉林
日期:2017-06-24 16:43:52
4 [报告]
发表于 2017-03-31 09:44 |只看该作者
本帖最后由 关阴月飞 于 2017-03-31 09:48 编辑
  1. [root@ ~]# awk 'FNR==NR{a[NR]=$0;n=NR;next}{for(i=0;i++<n;){for(s=0;s++<length(a[i]);){print gensub(".",$0"&",s,a[i])}; print a[i] $0"\n"}}' a b
  2. /1111
  3. 1/111
  4. 11/11
  5. 111/1
  6. 1111/

  7. /222
  8. 2/22
  9. 22/2
  10. 222/

  11. ,1111
  12. 1,111
  13. 11,11
  14. 111,1
  15. 1111,

  16. ,222
  17. 2,22
  18. 22,2
  19. 222,

  20. +*?1111
  21. 1+*?111
  22. 11+*?11
  23. 111+*?1
  24. 1111+*?

  25. +*?222
  26. 2+*?22
  27. 22+*?2
  28. 222+*?
复制代码

论坛徽章:
22
2015年亚洲杯之科威特
日期:2015-04-18 15:27:07每日论坛发贴之星
日期:2016-01-27 06:20:0015-16赛季CBA联赛之广夏
日期:2016-03-28 16:20:51程序设计版块每日发帖之星
日期:2016-04-09 06:20:00CU十四周年纪念徽章
日期:2016-05-03 09:35:1415-16赛季CBA联赛之天津
日期:2016-11-18 08:31:3115-16赛季CBA联赛之山西
日期:2016-12-07 16:29:5315-16赛季CBA联赛之八一
日期:2017-01-10 11:34:3415-16赛季CBA联赛之吉林
日期:2017-03-30 22:51:1915-16赛季CBA联赛之广夏
日期:2017-04-13 20:51:52程序设计版块每日发帖之星
日期:2016-01-27 06:20:00每日论坛发贴之星
日期:2015-12-28 06:20:00
5 [报告]
发表于 2017-03-31 09:52 |只看该作者
回复 4# 关阴月飞

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

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP