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
- O comando grep
- Excluyendo patrones
- Excluyendo archivos
- Excluindo diretórios
- 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 .