Explique em detalhes egrep line

0

Oi eu encontrei na internet egrep line. A linha encontra a linha mais longa no texto. Mas eu não entendo elementos específicos. Talvez alguém possa me explicar toda a linha?

Aqui está: egrep -n "^.{$(wc -L < filename)}$" filename

    
por user3168731 05.10.2014 / 19:58

1 resposta

0

Comando total: egrep -n "^.{$(wc -L < filename)}$" filename

Repartição:

egrep = O programa egrep , que procura por linhas que correspondam a um padrão e as imprima. (semelhante a grep ). Equivalente a grep -E , que interpreta a coisa entre aspas como um padrão de expressão regular estendido.

Argumento

-n = egrep para indicar o número da linha.

$(wc -L < filename) - wc é um programa contador de palavras e imprime o número de novas linhas e coisas no arquivo. -L é o argumento wc max length. < filename é o comando para passar todo o conteúdo do arquivo filename especificado para wc . $( ) é um Bashism (algo que está relacionado ao programa bash e linguagem de script) e é uma maneira de dizer "Processe o comando aqui, então coloque a saída no lugar dessa string inteira. O restante desse comando parece ser parte de expressões regulares, mais a entrada passada na string, em última análise, com este apenas sendo o padrão em que egrep corresponde.

"^.{ ... }$" = O " é apenas uma maneira de passar esse padrão para egrep sem caracteres sendo interceptados como códigos Bash. O restante é um padrão de expressão regular . Regex é algo que todos deveriam saber. Eu uso RegExr para me ajudar a aprender e entender o regex e para criar padrões de regex. Para quebrar isso, ^ é uma âncora e indica que ela corresponde ao início da string. . indica qualquer caractere, exceto uma quebra de linha antes do próximo argumento. { e } indicam% real{ e } caracteres na saída, de acordo com RegExr. O $ no final é uma âncora para indicar o final da string.

    
por Thomas Ward 05.10.2014 / 20:17