use POSIX qw/ceil/;
@line = <>;
chomp (@line);
print join ("\t", @line[$_ * 20 .. $_ * 20 + 20]) . "\n" for
(0..ceil($#line/20));-------- Original Message -------- Subject: [PerlChina] 用perl对文本的列进行处理的问题 From: Li Xiangchen <[email protected]> To: [email protected] Date: 15/5/2013 17:39 > 我有一个文本,里面数据是这样: > 0.924 > 0.609 > 0.742 > 0.808 > 0.832 > 0.866 > 0.61 > 0.584 > 0.854 > 0.91 > 0.863 > 0.706 > 0.925 > 0.719 > 0.828 > 0.701 > 0.761 > 0.795 > 0.717 > 0.7 > 0.968 > 0.604 > 0.751 > 0.825 > 0.844 > 0.863 > 0.621 > 0.568 > 0.876 > 0.917 > ... > 我想没隔20行,提取一组数据,然后把文本变成如下形式的: > 0.924 0.968 0.712 0.911 0.939 > 0.609 0.604 0.685 0.873 0.912 > 0.742 0.751 0.633 0.561 0.581 > 0.808 0.825 0.678 0.807 0.744 > 0.832 0.844 0.654 0.763 0.831 > 0.866 0.863 0.676 0.842 0.847 > 0.61 0.621 0.569 0.597 0.609 > 0.584 0.568 0.508 0.577 0.538 > 0.854 0.876 0.685 0.769 0.84 > 0.91 0.917 0.725 0.862 0.908 > 0.863 0.868 0.663 0.803 0.867 > 0.706 0.709 0.589 0.647 0.695 > 0.925 0.923 0.737 0.863 0.91 > 0.719 0.712 0.639 0.72 0.688 > 0.828 0.835 0.644 0.775 0.835 > 0.701 0.713 0.594 0.609 0.695 > 0.761 0.776 0.644 0.739 0.767 > 0.795 0.807 0.65 0.733 0.822 > 0.717 0.747 0.579 0.641 0.676 > 0.7 0.721 0.586 0.646 0.662 > 这样的每20行数据为一列,中间以制表符隔开的形式,但苦于刚学Perl不太会写 > 程序操作,还请朋友帮忙,谢谢! -- 您收到此邮件是因为您订阅了 Google 网上论坛的“PerlChina Mongers 讨论组”论坛。 要退订此论坛并停止接收此论坛的电子邮件,请发送电子邮件到 [email protected]。 要向此网上论坛发帖,请发送电子邮件至 [email protected]。 通过以下网址访问此论坛:http://groups.google.com/group/perlchina?hl=zh-CN。 要查看更多选项,请访问 https://groups.google.com/groups/opt_out。
