免费注册 查看新帖 |

Chinaunix

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

how to nomalize format like that: [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-07-25 08:36 |只看该作者 |倒序浏览
--data.txt--

id:line1     2727525745257245724574246257625724567.....................
       id:line2  795905634562357254572725473473457347573734352..........
id:line3            42346243643262342442623466643623432445431
------------------------------------------------------------------
i want to see output RESULT have 30 letters per line:

id:line1
27275257452572457245742462576
25724567247247242623463632463
26363666346363636
id:line2
795905634562357254572725473473
457347573734352547457343457457
43573454643
id:line3
423462436432623424426234666436
23432445431

论坛徽章:
0
2 [报告]
发表于 2003-07-25 12:23 |只看该作者

how to nomalize format like that:

fold

论坛徽章:
0
3 [报告]
发表于 2003-07-25 12:28 |只看该作者

how to nomalize format like that:

awk '{print $1"\n"substr($2,0,30)"\n"substr($2,31,30)}' file_name

论坛徽章:
0
4 [报告]
发表于 2003-07-25 17:05 |只看该作者

how to nomalize format like that:

Wrong! The result losses mamy data, see:

id:line1
272752574525724572457424625762
572456724724724262346363246326
id:line2
795905634562357254572725473473
457347573734352547457343457457
id:line3
423462436432623424426234666436
23432445431

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
5 [报告]
发表于 2003-07-25 17:12 |只看该作者

how to nomalize format like that:

原帖由 "happyboy227" 发表:
Wrong! The result losses mamy data, see:

id:line1
272752574525724572457424625762
572456724724724262346363246326
id:line2
795905634562357254572725473473
457347573734352547457343457457
id:line3..........
  

這應該不難吧?
用spilt(/ /);
把id:line1 與後面字串切出來..
再用substr()抓出30個chars一組..
如果length ($string) < 30..就不用substr了...
最後print出來...

论坛徽章:
0
6 [报告]
发表于 2003-07-25 21:25 |只看该作者

how to nomalize format like that:

  1. perl -e 'while(<>;){chomp;split;print "$_[0]\n$_[1]\n";}' myfile | fold -w 30
复制代码

I combined perl and fold together....

论坛徽章:
0
7 [报告]
发表于 2003-07-25 21:30 |只看该作者

how to nomalize format like that:

or use awk like this

  1. awk '{printf "%s\n%s\n", $1, $2}' myfile | fold -w 30
复制代码

论坛徽章:
0
8 [报告]
发表于 2003-07-26 13:38 |只看该作者

how to nomalize format like that:

or use 文法 like this:

use Parse::RecDescent;

my $grammar = <<'EOG';
addition_expr: a_line(s)
               | <error: illegal expression>;
  a_line:'id:' line_id number(s)
                 { print "\n"; }
  line_id:/.+\n/
                 { $item[1] =~ s/\s+$//;print "iditem[1] "; }
  number:/\d+\s*\n/
                 { $item[1] =~ s/\s+$//;print $item[1]; }
EOG

open(DATA,"e:/perl/code/t.txt";

my @lines = <DATA>;;

my $text = join('', @lines);
my $parserRef = new Parse::RecDescent($grammar);
my $ret = $parserRef->;addition_expr($text);
die $@ if $@;

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

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP