Como posso contar linhas com palavras de letras maiúsculas de determinado tamanho?

3

Como posso criar um script de shell em unix / linux para encontrar o número de linhas em um arquivo de texto com palavras de 5 a 10 caracteres e começando com uma letra maiúscula?

    
por jimmij 15.04.2011 / 06:26

2 respostas

7

Supondo que a pergunta original tenha contado o número de linhas que correspondem aos requisitos acima, isso deve ser feito:

grep -e '\<[[:upper:]][[:alpha:]]\{4,9\}\>' file|wc -l

Assumindo que é necessário imprimir os números de linha correspondentes:

awk --re-interval '{line = line + 1} /\<[[:upper:]][[:alpha:]]{4,9}\>/ {print line}' file
    
por 15.04.2011 / 06:49
0
egrep "^[A-Z]" FILE | egrep -c "\b[A-Za-z]{5,10}\b"

Do jeito que a pergunta é agora, isso significa filtrar linhas, começando com uma letra maiúscula (como essa linha) [a linha tem que começar com uma letra maiúscula - não a palavra], e incluir uma palavra (não necessariamente a primeira palavra) com 5 a 10 caracteres.

Sim, depois de ler a pergunta original, existem 4 possibilidades para interpretá-la: A palavra Iniciante precisa preencher os dois requisitos ou é uma palavra inicial e outra palavra e: Obter os números de linha ou o número de linhas.

Para imprimir os números de linhas, que começam com uma letra maiúscula e contêm uma palavra com tamanho entre 5 e 10, usamos sed:

sed -nr '/^[A-Z][a-z]{4,9}/=;/^[A-Z].*\b[A-Za-z]{5,10}\b/=' FILE 
    
por 17.04.2011 / 02:11