0

一般的な形式のテキスト ファイルがいくつかあります

0
0
0
0
125
0
0
0
0
0
0
3211
0
0

0
0

まず、file1.txt のどの行にゼロ以外の要素が含まれているかを特定したいと思います。

grep -ne '^[1-9]' file1.txt | cut -f 1 d:

次に、file1.txt、file2.txt、および file3.txt でこれらの行番号をループし、見つかった番号を新しいファイルに貼り付けます。各テキスト ファイルには 1 行に 1 つの数字がありますが、たまにある行には改行文字しかありません

file1  file2   file3
125    a num   a num
3211   a num   a num

貼り付けコマンドを使用して、各結果を新しいテキスト ファイルに追加します。ただし、特定の行番号の内容を grep する方法がわかりません。どんな助けでもいただければ幸いです

4

2 に答える 2

0

この Perl バージョンに興味があるかもしれません。

use strict;
use warnings;

use Tie::File;

my @rows;
my @i;
my @files = qw/ file1.txt file2.txt file3.txt /;

for my $file (@files) {
  tie my @file, 'Tie::File', $file or die qq{Couldn't open file "$file": $!};
  my @i = grep $file[$_], 0 .. $#file unless @i;
  my @column = @file[@i];
  push @{$rows[$_]}, $column[$_] for 0 .. $#column;
}

print join("\t", @files), "\n";
print join("\t", @{$rows[$_]}), "\n" for 0 .. $#rows;
于 2013-04-30T16:09:46.517 に答える