4つの列があり、スペースで区切られた大きなテキストファイルがあります。
somelongword otherlongword abcde abc
3列目または4列目の単語のn
長さが文字数を超える行の数をカウントしたいと思います。最終的には、多くのファイルを調べて、すべてのファイルの各行に合計1つの番号を出力したいと思います。
私の直感では、awkのようなものを使用する必要がありますが、私がやりたいことを行うための構文を理解することはできません。
4つの列があり、スペースで区切られた大きなテキストファイルがあります。
somelongword otherlongword abcde abc
3列目または4列目の単語のn
長さが文字数を超える行の数をカウントしたいと思います。最終的には、多くのファイルを調べて、すべてのファイルの各行に合計1つの番号を出力したいと思います。
私の直感では、awkのようなものを使用する必要がありますが、私がやりたいことを行うための構文を理解することはできません。
回答:
あなたの直感は正しいです。おそらくsed / awkを介してそれを行うはるかに簡単な方法があります...
#!/usr/bin/perl
use warnings;
use strict;
my $n = 5;
my $linenum = 1;
while (<>)
{
my @cols = split(/\s+/);
if ((length($cols[2]) > $n) || (length($cols[3]) > $n))
{
print "Line $linenum: $_";
}
$linenum++;
}
基準に一致する行番号と行のみを出力しますが、必要なものを出力することは、多くの書き換えを必要としないはずです。