Conte as linhas em que a palavra na terceira ou na quarta coluna excede n caracteres no arquivo de texto

0

Eu tenho um arquivo de texto grande com 4 colunas e espaço separado.

somelongword otherlongword abcde abc

Gostaria de contar o número de linhas em que a palavra na terceira ou na quarta coluna tem mais de n caracteres. Eventualmente eu terei muitos arquivos para examinar, e eu gostaria de imprimir um número total para cada linha em todos os arquivos.

Minha intuição é que eu deveria usar algo como o awk, mas não consigo descobrir a sintaxe para fazer o que eu quero.

    
por RationalHusky 05.11.2016 / 23:43

1 resposta

1

Sua intuição está certa. Há provavelmente uma maneira muito mais simples de fazê-lo via sed / awk ... mas eu decidi que era hora de retocar meu perl e hackear este pedaço juntos:

#!/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++;
}

Ele imprime apenas o número da linha e a linha que correspondem aos critérios, mas a impressão do que você deseja não deve exigir muita reescrita.

    
por 06.11.2016 / 00:07