0

Windows で Perl スクリプトを実行しています。これにより、いくつかの情報を含む複数のテキスト ファイルが作成されます。すべてのテキスト ファイル データを 1 つのファイルに並べて配置するための Perl スクリプトの助けが必要です。foreachネストされたループを使用して各ファイルを解析し、並べて印刷できることはわかっています。ただし、ファイルの数は異なります。例えば:

入力:

file1.txt:

AAA
BBB
CCC

file2.txt:

DDD
EEE
FFF

出力:

AAA  DDD
BBB  EEE
CCC  FFF

前もって感謝します

4

3 に答える 3

1

paste独自の perl スクリプトを使用しない場合は、Linux ツールもこの機能を提供します。

于 2013-02-20T00:19:22.647 に答える
0

これでうまくいくはずです。

use strict;
use warnings;
use IO::File;

my @files = (q[a.txt], q[b.txt]);

my @fhs = ();

foreach my $file (@files)
{
    my $fh = new IO::File $file, O_RDONLY;
    push @fhs, $fh if defined $fh;
}

while(1)
{
    my @lines = map { $_->getline } @fhs;

    last if grep { not defined $_ } @lines[0..(@fhs-1)];

    print join(qq[\t], map { s/[\r?\n]+/ /g; $_ } @lines) . qq[\r\n];
}

map { $_->close } @fhs;
于 2013-02-20T00:08:12.417 に答える
0

どうですか :

open my $fh, ">", "concat.txt" or die $!;
my $string = qx(
    @echo off;
    type %*.txt;
);
print $fh $string;

?

于 2013-02-19T22:24:12.003 に答える