Como excluir padrões, arquivos e diretórios com grep

Desde 1974, o Linux grep O comando tem estado ajudando as pessoas a encontrar cadeias nos arquivos. Pero a veces grep é demasiado completo. Aqu hay varias maneiras de decidir grep ignorando cosas diferentes.

índice de conteúdo

  1. O comando grep
  2. Excluyendo patrones
  3. Excluyendo archivos
  4. Excluindo diretórios
  5. A veces es lo que dejas fuera

O comando grep

los grep El comando busca archivos de texto em busca de cadenas que coincidan con los patrones de bsqueda que produz en la lnea de comando. O poder de grep radica em seu uso de expressões regulares. É permitido descrever o que está buscando, no lugar de tener que define explicitamente.

O início do grep é anterior ao Linux. fue desarrollado a principios de la dcada de 1970 en Unix. Toma su nombre de la secuencia de teclas g / re / p en el ed editor de lnea (por cierto, pronunciado "ee-dee"). Esto representa gramo globales, rey bsqueda expresa regular, pags imprimir lneas coincidentes.

grep es famoso, quizs, notoriamente, minucioso y saber. A veces procurar archivos ou directorios en los que preferira não perder o tiempo, porque os resultados podem ser incapazes de ver la madera delos rboles.

Por supuesto, hay formas de dominar el grep. Puede decirle que ignore patrones, archivos y directorios para que grep complete sus bsquedas ms rpido y no se vea inundado con falsos positivos sin sentido.

Excluyendo patrones

para buscar com grep pode canalizar a entrada de outro processo, como cat ou puede fornecerá um nome de arquivo como o ltimo parmetro da lnea de comandos.

Estamos usando um arquivo corto que contém o texto do poema. Jabberwocky , de Lewis Carroll. Em todos os exemplos, estamos buscando lneas que coincidam com o trmino de bsqueda "Jabberwock".

 gato jabberwocky.txt | grep "Jabberwock"
 grep "Jabberwock" jabberwocky.text

Las lneas que contêm coincidências com a pista de bsqueda se enumeran para nosotros, com o elemento coincidente em cada lnea resaltado en rojo. Esa es una bsqueda sencilla. Pero, y si quer excluir excluirlneas que contengan la palabra "Jabberwock" e imprimir o resto?

Podemos lograr eso con el -v (coincidência inversa) opcin. Esto enumera las lneas que no coincide com el trmino de bsqueda.

 grep -v "Jabberwock" jabberwocky.text

As linhas que não contêm "Jabberwock" devem ser enumeradas na saída do terminal.

Podemos excluir tantos trminos como queremos. Filtramos cualquier lnea que contém "Jabberwock" e cualquier lnea que contém "y". Para lograr esto usaremos el -e (expressin) opcin. Necessitamos usarlo para cada padrão de bsqueda que estemos usando.

 grep -v -e "Jabberwock" -e "e" jabberwocky.txt

Hay una cada correspondente no nmero de lneas en la salida.

| cao usa,el -E (extensions regulares extendidas), podemos combinar os patrones de OR com ", que en este contexto no indica un es lo operador.

 grep -Ev "Jabberwock|and" jabberwocky.txt

Obtemos exatamente o mismo resultado que obtuvimos com o comando anterior ms extenso.

O formato do comando é o mismo e desea usar um padrão de expressões regulares no lugar de uma pista de bsqueda explícita. Este comando excluir todas as lneas que comiencen con cualquier no conjunto de "ACHT".

 grep -Ev "^ACHT" jabberwocky.txt

Para ver linhas que contêm um padrão quando o tampão contém outro padrão, podemos canalizar o grep dentro do grep . Buscaremos todas as lneas que contêm a palavra "Jabberwock" e luego filtraremos as lneas que adems contém a palavra "muerto".

 grep "Jabberwock" jabberwocky.txt | grep -v "morto"

Excluyendo archivos

Podemos preguntar grep para buscar uma cadeia ou padrão em uma coleção de arquivos. Você pode enumerar cada arquivo na linha de comando, pero com muitos arquivos, este enfoque não é escalado.

 grep "vorpal" verso-1.txt verso-2.txt verso-3.txt verso-4.txt verso-5.txt verso-6.txt

Tenga en cuenta que o nome do arquivo que contiene la lnea coincidente se muestra al comienzo de cada lnea de salida.

Para reduzir a escritura, podemos usar comodinas. Pero eso puede ser contradictorio. Está parecendo funcionar.

 grep "vorpal" *.txt

Sem embargo, neste diretório há outros arquivos TXT, que nada tem que ver com o poema. Se buscamos a palavra espada com a má estrutura de comandos, obtemos muitos falsos positivos.

 grep "espada" *.txt

Os resultados que queremos são mascarados pela avalancha de resultados falsos de outros arquivos que prendem a extensão TXT.

A palavra "vorpal" não coincide com nada, mas "espada" está incluída na palavra "contrasea", por isso que se encontra muitas vezes em alguns pseudo-arquivos de registro.

Necessitamos excluir estos archivos. Para usarmos o --exclude opcin. Para excluir un solo archivo llamado "vol-log-1.txt", usar este comando:

 grep --exclude=vol-log-1.txt "espada" *.txt

Neste caso, excluímos vários arquivos de registro com nomes que comiencen com "vol". A sintaxe que necesitamos é:

 grep --exclude=vol*.txt "espada" *.txt

Cuando estamos buscando -R (desreferencia-recursiva) opções de diretórios completos para nosotros grep de diretórios. De manera predeterminada, buscar em todos os arquivos e essas ubicaciones. Puede haber mltiples tipos de arquivos que desejamos excluir.

Debajo del directorio real en esta mquina de prueba, hay directorios anidados que contienen archivos de registro, archivos CSV y archivos MD. Estes são todos os tipos de arquivos de texto que queremos excluir. Podemos usar uma opção --exclude para cada tipo de arquivo, mas podemos registrar o que queremos de maneira eficiente agrupando os tipos de arquivo.

Este comando exclui todos os arquivos que possuem extensões CSV ou MD, e todos os arquivos TXT que têm nomes comienzan com "vol" ou "log".

 grep -R --exclude=*.{csv,md} --exclude={vol*,log*}.txt "sword" /home/dave/data/

Excluindo diretórios

Se os arquivos buscarmos que queremos ignorar os conteúdos principais e nenhum arquivo hay es que queremos, podemos excluir os diretores esos diretórios completos.

O conceito é muito semelhante ao de excluir arquivos, exceto que usamos --exclude-dir e os diretórios ignorados.

 grep -R --exclude-dir=backup "vorpal" /home/dave/data

Nós excluímos o diretório "backup", mas hoje estamos buscando em outro diretório chamado "backup2".

Não seja uma opção que possamos usar o --exclude-dir opcin varias veces em um único comando. Tenga en cuenta que la ruta a los diretórios excluidos debe proporcionar a relacin com o diretório en el que comenzar la bsqueda. Não utilize a rota absoluta desde a razão do sistema de arquivos.

 grep -R --exclude-dir=backup --exclude-dir=backup2 "vorpal" /home/dave/data

Também podemos usar agrupamentos. Podemos lograr o mismo de manera ms sucinta com:

 grep -R --exclude-dir={backup,backup2} "vorpal" /home/dave/data

Você pode combinar exclusões de arquivos e diretórios no comando mismo. Se você deseja excluir todos os arquivos de um diretório e tipos de arquivos dos diretórios que são buscados , use esta sintaxe:

 grep -R --exclude=*.{csv,md} --exclude-dir=backup/archive "frumious" /home/dave/data

A veces es lo que dejas fuera

A veces con grep puede sentirse como si estuviera tratando de encontrar una aguja en un pajar. hace uma grande diferença sair do pajar.

  • Una gran introduccin – Revisin geek
  • En qu pas debo configurar mi VPN?

Descubre ms contenido

Que é um amplificador integrado?

Google Pixel Watch também tem detecção de cadas, pero no hasta el prximo ao

Las melhores tazas de caf calentadas de 2022

Cmo automatize seu iPhone segn el tiempo, la actividad ou la ubicacin

"Eso debe haber sido antes de mi tiempo"

Por qu la NASA enva a Snoopy a la Luna? – Revisando geek

¿Que função tem o comando grep?

grep e uma utilidade da linha de origem original para ser usada com o sistema operacional Unix. Normalmente, grep toma uma expressão regular da linha de comandos, le a entrada padrão ou uma lista de arquivos, e imprime as linhas que contêm coincidências para a expressão regular.

¿Como fazer um grep?

A sintaxe básica do grep é a seguinte: “ grep [Opciones] Cadena de búsqueda [ARCHIVO]” o, como alternativa, “ grep [Opciones] [-e Ejemplo | -f ARQUIVO] [ARQUIVO]”. Um ejemplo sencillo de um comando grep no Linux seria buscar um termo específico no texto de um arquivo de código ou registro.

¿Como buscar arquivos com grep?

Existem várias opções para usar grep com caracteres de controle, ou seja, os mais relevantes: -r para buscar recursivamente( buscar também em subdiretórios) -l pode ser utilizado para mostrar apenas os nomes dos arquivos . -v se utiliza para buscar arquivos ou frases que NÃO contém a string de búsqueda.

¿Como fazer um búsqueda em Linux?

Para encontrar um arquivo no Linux , você pode usar o comando Linux find. Esto inicia una búsqueda recursiva em una jerarquía de directorios siguiendo ciertos criterios. O comando find de Linux é uma herramienta precisa para encontrar arquivos e diretórios e é compatível com todas as distribuições do Linux .

Ir arriba