2

次に対する Perl ソリューションはありますか: 次の形式のファイルがあります

abcdef
abcdef
abcdef
abcdef

これは、実数が数千列と数百行に拡張され、1 と 0 で構成されるファイルの単なる例です。

出力を次のようにしたい

abababab
cdcdcdcd
efefefef

他の場所で答えを探しましたが、行を直接列に転置する解決策しか見つかりませんでした。この場合、行のすべてのペアを取り、それらを列に転置したいと考えています。

私は何日もこれに対する解決策にこだわっていたので、助けていただければ幸いです

4

1 に答える 1

2

私のソリューションでは、Tie::Fileモジュールを使用して、ファイルを複数回読み取るために必要なバッファリングを自動化すると思います。

use strict;
use warnings;

use Fcntl 'O_RDONLY';
use Tie::File;
use List::Util 'max';

tie my @data, 'Tie::File', 'test.dat', mode => O_RDONLY or die $!;

my $max = max map length, @data;

for (my $index = 0; $index < $max; $index += 2) {
  print substr $_, $index, 2 for @data;
  print "\n";
}

出力

abababab
cdcdcdcd
efefefef
于 2012-11-27T13:34:33.103 に答える