saber qual é a maior linha [RESOLVIDO]

1. saber qual é a maior linha [RESOLVIDO]

danilo cesar severiano
dnilocesar

(usa Ubuntu)

Enviado em 17/08/2016 - 15:34h

Ola

Gostaria de saber se tem como achar qual é a maior linha, ou a linha que tem mais palavras em um texto.
procurei varias vezes mas não achei nada.


  


2. MELHOR RESPOSTA

thinomar
thinomar

(usa Linux Mint)

Enviado em 17/08/2016 - 16:00h

cat meuArquivo.txt | awk '{print length " caracteres\tNúmero da Linha: " NR "\t" $0}' | sort -rn | head -n 1 

Explicando os comandos:
- cat meuArquivo.txt: Lê o arquivo
- |: Redireciona a saída do comando anterior para o posterior
- awk '{print length " caracteres\tNúmero da Linha: " NR "\t" $0}': Imprime a quantidade de caracteres da linha com o length, o número da linha com o NR e o conteúdo da linha com o $0. Os "\t" são para adicionar tabulações entre cada coluna e o print para imprimir na tela.
- sort -rn: Comando para ordenação. O argumento "r" significa "reverse", ou seja, ordena em ordem decrescente, e o "n" significa "numeric", informando que a ordenação será numérica, e não alfanumérica.
- head -n 1: Imprime as primeiras linhas. O argumento "n" se refere ao número de linhas a serem impressas e o número 1 é a quantidade.

3. saber qual é a maior linha

danilo cesar severiano
dnilocesar

(usa Ubuntu)

Enviado em 17/08/2016 - 16:46h

thinomar escreveu:

cat meuArquivo.txt | awk '{print length " caracteres\tNúmero da Linha: " NR "\t" $0}' | sort -rn | head -n 1 

Explicando os comandos:
- cat meuArquivo.txt: Lê o arquivo
- |: Redireciona a saída do comando anterior para o posterior
- awk '{print length " caracteres\tNúmero da Linha: " NR "\t" $0}': Imprime a quantidade de caracteres da linha com o length, o número da linha com o NR e o conteúdo da linha com o $0. Os "\t" são para adicionar tabulações entre cada coluna e o print para imprimir na tela.
- sort -rn: Comando para ordenação. O argumento "r" significa "reverse", ou seja, ordena em ordem decrescente, e o "n" significa "numeric", informando que a ordenação será numérica, e não alfanumérica.
- head -n 1: Imprime as primeiras linhas. O argumento "n" se refere ao número de linhas a serem impressas e o número 1 é a quantidade.




funcionou valew!, só pra saber, ao invés de caracteres da pra contar quantas palavras tem?


4. Re: saber qual é a maior linha [RESOLVIDO]

Paulo
paulo1205

(usa Ubuntu)

Enviado em 17/08/2016 - 19:41h

Também usando o awk, o valor de NF (assim mesmo, em letras maiúsculas) contém o número de campos da linha.

Os campos geralmente são separados com um ou mais espaços. Se você quiser considerar como palavras separadas aquelas que utilizarem hífens ou outros sinais de pontuação como separadores, pode modificar o valor da variável FS. Leia a documentação do awk.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts