fbpx

Comandos Linux – Comando agrep

Comando grep do Linux

Atualizado: 05/04/2019 por Computer Hope

comando concorda

Agrep é uma versão do utilitário grep que também corresponde aos padrões aproximados .

Descrição

concorda aceita os nomes dos arquivos de entrada (a entrada padrão é o padrão) para registros contendo cadeias que correspondem exatamente ou aproximadamente a um padrão .

Um registro é, por padrão, uma única linha, mas pode ser definido de maneira diferente usando a opção -d (veja abaixo). Normalmente, cada registro encontrado é copiado para a saída padrão. A correspondência aproximada permite localizar registros que contêm o padrão com vários erros, incluindo substituições , inserções e exclusões .

Por exemplo, “Massechusets” corresponde a “Massachusetts” com dois erros (uma substituição e uma inserção ). A execução de approc -2 Massechusets foo gera todas as linhas no arquivo foo contendo qualquer sequência com (no máximo) 2 erros de “Massechusets”.

O acceptp suporta muitos tipos de consultas, incluindo curingas arbitrários, conjuntos de padrões e, em geral, todas as expressões regulares . Ele suporta a maioria das opções suportadas pela família grep e várias outras (mas não é 100% compatível com grep ).

Assim como o restante da família grep , os caracteres $ , ^ ,  , [ , ] , ^ , | ( , ) ,! , e \ podem causar resultados inesperados quando incluídos no padrão, pois esses caracteres especiais também são significativos para o shell . Para evitar esses problemas, deve-se sempre colocar todo o argumento do padrão entre aspas simples, ou seja, ‘padrão’ . Não use aspas duplas (  ).

Quando o consentimento é aplicado a mais de um arquivo de entrada, o nome do arquivo é exibido no início de cada linha que corresponde ao padrão. (O nome do arquivo não é exibido durante o processamento de um único arquivo, mas, nesse caso, se o usuário deseja que o nome apareça, ele deve usar / dev / null como um segundo arquivo na lista e, em seguida, o nome do arquivo será exibido )

Sintaxe

  concorda [- # cdehiklnpstvwxBDGIS] padrão [-f patternfile ] [ nome do arquivo ...]

Opções

– ## É um não-negativo inteiro (no máximo 8), que especifica o número máximo de erros permitidos em encontrar os jogos aproximados. O padrão é zero . Geralmente, cada inserção, exclusão ou substituição conta como um erro. É possível ajustar o custo relativo de inserções, exclusões e substituições; consulte -I -D e -S opções.
-cExibe apenas a contagem (número de ocorrências) dos registros correspondentes.
-d ‘delim’Defina delim para ser o separador entre dois registros. O valor padrão é ‘ $ ‘, que corresponde ao final de uma linha; portanto, por padrão, um registro é uma única linha. delim pode ser uma sequência de até oito caracteres (com o possível uso de ^ e $ ).

O texto entre dois delim ‘s, antes do primeiro delim e depois do último delim é considerado como um registro.

Por exemplo, -d ‘$$’ define parágrafos como registros (se um parágrafo é representado por duas novas linhas) e -d ‘^ From’ define mensagens de email como registros. agrep corresponde cada registro separadamente.

Essa opção funciona com expressões regulares, mas o próprio delim não pode ser uma expressão regular.

-e padrãoO mesmo que fornecer um argumento simples de padrão, mas usar -e é útil quando o padrão começa com um ‘  ‘.
-f patternfileCombine os padrões no arquivo de padrão . A saída é todas as linhas que correspondem a pelo menos um dos padrões no arquivo de padrão .

Atualmente, a opção -f funciona apenas para correspondência exata e para padrões simples (qualquer símbolo meta é interpretado como um caractere regular).

É compatível apenas com as opções -c , -h , -i , -l , -s , -v , -w e -x .

-hNão exiba nomes de arquivos.
-EuPesquisa que não diferencia maiúsculas de minúsculas; por exemplo, ” A ” e ” a ” são considerados equivalentes.
-kUse a correspondência simples de padrões, ou seja, não trate símbolos no padrão como um meta caractere.

Por exemplo, concorda -k ‘a (b | c) * d’ foo encontrará as ocorrências da cadeia literal “a (b | c) * d” em foo , enquanto concorda ‘a (b | c) * d’ foo encontrará substrings em foo que correspondem à expressão regular ‘a (b | c) * d’ .

-euListar apenas os nomes dos arquivos que contêm uma correspondência. Por exemplo, concorda -l ‘maravilhoso’ * listará os nomes desses arquivos no diretório atual que contêm a palavra maravilhoso .
-nCada linha impressa é prefixada por seu número de registro no arquivo.
-pEncontre registros no texto que contenham uma superssequência do padrão. Por exemplo, concorda que -p DCS foo corresponderá ao ” Departamento de Ciência da Computação “.
-sTrabalhe silenciosamente; isto é, não exibe nada, exceto mensagens de erro.
-tEnvie o registro começando do final do delim para (e incluindo) o próximo delim . Isso é útil para casos em que o delim deve aparecer no final do registro.
-vModo inverso – exibe apenas os registros que não contêm o padrão.
-WProcure o padrão apenas como uma palavra – ou seja, apenas corresponda aos padrões se eles estiverem cercados por caracteres não alfanuméricos , como um espaço ou um traço. O não alfanumérico deve cercar a correspondência; eles não podem ser contados como erros. Por exemplo, concordar -w -1 carro corresponderá a ” carros “, mas não a ” caracteres “.
-xO padrão deve corresponder à linha inteira.
-yUsado com a opção -B . Quando Y estiver ligado, agrep será sempre produzir os melhores jogos sem dar um aviso.
-BMelhor modo de correspondência. Quando -B for especificado e nenhuma correspondência exata for encontrada, o consentimento continuará a procurar até que sejam encontradas as correspondências mais próximas (ou seja, aquelas com número mínimo de erros); nesse momento, a seguinte mensagem será exibida: ” a melhor correspondência contém x erros, existem y correspondências, produza-os? (s / n) “.

O melhor modo de correspondência não é suportado para entrada padrão, por exemplo, entrada de pipeline . Quando as opções – # , -c ou -l são especificadas, a opção -B é ignorada. Em geral, -B pode ser mais lento que – # , mas não muito.

-D kDefina o custo de uma exclusão como k ( k é um número inteiro positivo). Esta opção atualmente não funciona com expressões regulares.
-GSaída dos arquivos que contêm uma correspondência.
-I kDefina o custo de uma inserção como k ( k é um número inteiro positivo). Esta opção atualmente não funciona com expressões regulares.
-S kDefina o custo de uma substituição como k ( k é um número inteiro positivo). Esta opção atualmente não funciona com expressões regulares.

Padrões

O apprent suporta uma grande variedade de padrões, incluindo cadeias simples, cadeias de caracteres com classes de caracteres, conjuntos de cadeias de caracteres, curingas e expressões regulares.

Cordas

Uma sequência é qualquer sequência de caracteres, incluindo os símbolos especiais ^ para o início da linha e $ para o final da linha. Os caracteres especiais listados acima ( $ , ^ ,  , [ , ^ , | , ( , ) ,! E \ ) devem ser precedidos por \ para que correspondam como caracteres regulares. Por exemplo, \ ^ abc \\ corresponde à string “^ abc \”, enquanto ^ abc corresponde à string “abc” no início de uma linha.

Classes de caracteres

Uma classe de caracteres é uma lista de caracteres dentro de ” [] ” (em ordem) corresponde a qualquer caractere da lista, onde um traço representa o intervalo entre dois caracteres. Por exemplo, [a-ho-z] é qualquer caractere entre a e h ou entre o e z . O símbolo ^ inside [] indica quais caracteres não correspondem (“complementa” a lista). Por exemplo, [^ in] indica qualquer caractere, exceto os caracteres de i a n . O símbolo ^ tem, portanto, dois significados, mas isso é consistente com o egrep. O símbolo significa qualquer caractere, exceto o caractere de nova linha.

Operações booleanas

concorda aceita uma operação AND ‘ ; ‘e uma operação OR ‘ , ‘, mas não uma combinação de ambos. Por exemplo, rápido; a rede pesquisa todos os registros que contêm “rápido” e “rede”.

Curingas

O símbolo ‘ # ‘ é usado para indicar um curinga. # corresponde a zero ou qualquer número de caracteres arbitrários. Por exemplo, ex # e corresponde a “exemplo”. O símbolo # é equivalente a . * No egrep. De fato ,. * Funcionará também, porque é uma expressão regular válida, mas, a menos que isso faça parte de uma expressão regular real, # funcionará mais rápido.

Combinação de correspondência exata e aproximada

qualquer padrão entre colchetes angulares <> deve corresponder exatamente ao texto, mesmo que a correspondência esteja com erros. Por exemplo, <mathemat> ics corresponde matemático a um erro (substituindo os últimos s por um a ), mas mathe <matics> não corresponde matemático, não importa quantos erros permitimos.

Expressões regulares

A sintaxe das expressões regulares no concord é geralmente a mesma que no egrep . A operação sindical ‘ | ‘, Kleene encerramento’ * ‘e parênteses () são todos suportados. Atualmente ‘ + ‘ não é suportado. Atualmente, as expressões regulares estão limitadas a aproximadamente 30 caracteres (excluindo meta caracteres). Algumas opções ( -d , -w , -f , -t , -x , -D , -I , -S ) atualmente não funcionam com expressões regulares. O número máximo de erros para expressões regulares que usam ‘ * ‘ ou ‘ | ‘é 4.

Exemplos

  concorda -2 -c ABCDEFG foo

Fornece o número de linhas no arquivo foo que contêm ” ABCDEFG ” em dois erros.

  concorda -1 -D2 -S2 'ABCD # YZ' foo

Emite as linhas que contêm ” ABCD ” seguidas dentro de uma distância arbitrária por ” YZ “, com até uma inserção adicional ( -D2 e -S2 tornam as exclusões e substituições muito “caras”).

  concorda -5 -p abcdefghij / caminho / para / dicionário / palavras

Gera a lista de todas as palavras do dicionário localizadas em / path / to / dictionary / words contendo pelo menos 5 das 10 primeiras letras do alfabeto em ordem.

  concorda -1 'abc [0-9] (de | fg) * [xz]' foo

Gera as linhas que contêm, com até um erro, a sequência que começa com ” abc ” seguida de um dígito, seguida de zero ou mais repetições de ” de ” ou ” fg “, seguidas de ” x “, ” y ” ou ” z “.

  concordp -d '^ From' 'quebra; internet' mbox

Produz todas as mensagens de correio (o padrão ” ^ De ” separa as mensagens em um arquivo de mensagens) que contêm as palavras-chave ” quebra ” e ” internet “.

  concorda -d '$$' -1 '<word1> <word2>' foo

Localiza todos os parágrafos que contêm a palavra1 seguida pela palavra2 com um erro no lugar do espaço em branco. Em particular, se a palavra1 for a última palavra em uma linha e a palavra2 for a primeira palavra na próxima linha, o espaço será substituído por um símbolo de nova linha e corresponderá. Portanto, essa é uma maneira de superar a separação por uma nova linha. Observe que -d ‘$$’ (ou outro delim que abranja mais de uma linha) é necessário, porque, caso contrário, concorda em pesquisar apenas uma linha por vez.

grep – Filtra o texto que corresponde a uma expressão regular.

13 de novembro de 2019

Sobre nós

A Linux Force Brasil é uma empresa que ama a arte de ensinar. Nossa missão é criar talentos para a área de tecnologia e atender com excelência nossos clientes.

CNPJ: 13.299.207/0001-50
SAC:         0800 721 7901

[email protected]

Comercial  Comercial: (11) 3796-5900

Suporte:    (11) 3796-5900
[email protected]

Copyright © Linux Force Security  - Desde 2011.