The UNIX and Linux Forums  


Go Back   O UNIX e Linux Forum > Top Fóruns > UNIX para Dummies Perguntas & Respostas
.
google unix.com



UNIX para Dummies Perguntas & Respostas Se não tiver certeza de onde se pode postar uma pergunta Unix ou Linux, postá-lo aqui. Todos os UNIX e Linux novatos bem vindos!

Mais UNIX e Linux Fórum Tópicos Você pode achar Helpfull
Fio Thread Starter Fórum Respostas Última postagem
Recursivo FTP - aqui no passado. Perderabo Programação Shell Script e 52 03-25-2009 12:15
recursivos grep questão Mace UNIX para Dummies Perguntas & Respostas 1 08-11-2006 08:39
recursivos GREP? alan UNIX para Dummies Perguntas & Respostas 3 08-22-2003 04:15
grep recursivo diretórios jagannatha UNIX para Dummies Perguntas & Respostas 8 07-24-2003 05:00
FTP Recursivo aslamg UNIX para Dummies Perguntas & Respostas 1 03-08-2001 04:27

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
Linkback Thread Tools Pesquisar este Thread Rate Thread Display Modes
  #1 (permalink)  
Old 05-16-2008
upstate_boy upstate_boy is offline
Usuário
  
 

Join Date: May 2008
Lugares: 17
Recursivo grep

Olá,

Primeira vez post - não tenho qualquer formação formal unix e poderia usar alguma ajuda com isto. Tenho uma lista de strings em ficheiro1 que eu quero usar para fazer uma pesquisa recursiva (grep) sob um diretório específico.


Aqui está um exemplo da string Preciso de pesquisa:

/ diretório / dire ctory / diretório / dire ctory / filename

Estou a tentar ilustrar que a corda é um caminho completo de um arquivo, onde alguns dos diretórios tenham espaços em seus nomes.

Então, tem o seguinte script:

para h em `gato ficheiro1»; fazer grep-rl "$ h" /../../../../../>> /../../ ficheiro2; feito

Então, eu estou tentando dizer, para cada corda em ficheiro1, faça um grep recursivo no diretório especificado e imprimir os resultados para o ficheiro2.

O problema (eu acho) em que estou executando é o formato da corda estou pesquisando, o gato que estou a fazer é tratar os espaços como escapes que lança o grep desligado. Tentei colocar a string em aspas duplas e simples, mas ela ainda não funciona.

Desculpem a falta de terminologia técnica - espero eu fui suficientemente claro.

Se alguém pode oferecer alguma ajuda sobre como fazer com que funcione com o que eu tenho ou uma simples alternativa para o que tenho, seria uma grande ajuda.

Graças - ausentar menino
  #2 (permalink)  
Old 05-16-2008
jim McNAMARA jim mcnamara is offline Forum Staff  
...@...
  
 

Join Date: Feb 2004
Localização: NM
Mensagens: 5.800

Código:
find /path/to/search/in -type f | \
while read filename
do
       grep -f /path/to/strings.txt $filename
done  > /home/upstate_boy/results.txt

grep-f <file> meios a utilizar as cordas em <file> como cordas para pesquisa grep.
O feito> nome_do_arquivo parte escreve a saída do loop para nomeficheiro

Última edição por Jim McNAMARA; em 05/16/2008 10:07..
  #3 (permalink)  
Old 05-16-2008
era era is offline Forum Advisor  
Herder do Inútil Gatos (On Sabático)
  
 

Join Date: Mar 2008
Localização: / lá / é / só / bin / sh
Posts: 3.652
O caminho relativo ao ficheiro2 parece errado, o redirecionamento de saída é relativo ao diretório atual, não o diretório do arquivo que você está grepping.

A relativa pat grepping parece que você está errado também; / .. / é equivalente a / é equivalente a /../../../../../

Os backticks no circuito para se separar as coisas que estão em branco. Utilize um construto que é menos sensível às questões espaçamento, ou a utilização correcta citando.


Código:
for h in "`cat file1`"; do grep -rl "$h" pathtodir >>file2; done

ou


Código:
while read h; do grep -rl "$h" pathtodir >>file2; done<file1

  #4 (permalink)  
Old 05-16-2008
upstate_boy upstate_boy is offline
Usuário
  
 

Join Date: May 2008
Lugares: 17
Obrigado tanto para as respostas. I don't think I'm executar correctamente as suas sugestões, eu tentei todos os 3.

Jim,

I'm definitely confuso por ir para onde os ficheiros que quando li o teu.

supor:
strings.txt \u003d arquivo com cordas Quero encontrar
results.txt \u003d arquivo de saída de resultados de pesquisa

Estou procurando:

find / diretório / I / deseja / pesquisa /-type f | \
enquanto lê results.txt
fazer
grep-f strings.txt $ results.txt
feito

Quando eu uso isso, eu recebo:

deve ler-se: «results.txt ': não é um identificador válido

era,

Eu não tive nenhum erro com as suas sugestões, mas estou pesquisando cordas ainda estão quebrados, ou seja, os espaços ou '/' no texto estão a ser tratados como quebras viragem 1 corda em vários pequenos textos que estão ficando cada pesquisado.

Um exemplo melhor do que eu era originalmente a tentar fazer é:

para h em `gato strings.txt»; fazer grep-rl "$ h" / diretório / caminho / Quero / para / pesquisa />> / home / diretório / results.txt; feito

utilizando /../../ no meu post inicial não era a melhor escolha da minha parte, quando são o equivalente de costas carrapatos.


Eu vou continuar a perder tempo com todas as sugestões, caso existam outras orientações podem ser oferecidos seria uma grande ajuda.


Graças ausentar menino
  #5 (permalink)  
Old 05-16-2008
era era is offline Forum Advisor  
Herder do Inútil Gatos (On Sabático)
  
 

Join Date: Mar 2008
Localização: / lá / é / só / bin / sh
Posts: 3.652
A variável em Jim's exemplo, não pode ser nomeado results.txt, basta alterá-lo para, por exemplo, "arquivo" e você deve estar bem.

Qualquer coisa com importantes espaços em que deve ser duplamente citados.
  #6 (permalink)  
Old 05-16-2008
upstate_boy upstate_boy is offline
Usuário
  
 

Join Date: May 2008
Lugares: 17
Eu mudei-o para:

find / diretório / I / deseja / pesquisa /-type f | \
enquanto que ler o arquivo
fazer
grep-f strings.txt $ results.txt
feito

Os resultados agora são:

grep:. txt: Nenhum tal lima ou diretório

Pode alguém enunciar exatamente como eu devia tê-lo baseado no exemplo Venho usando?

Graças ausentar menino
  #7 (permalink)  
Old 05-16-2008
jim McNAMARA jim mcnamara is offline Forum Staff  
...@...
  
 

Join Date: Feb 2004
Localização: NM
Mensagens: 5.800
Ver edição anterior, em vermelho.
Closed Thread

Marcadores

Tags
grep, grep recursivo, recursivos grep

Thread Tools Pesquisar este Thread
Pesquisar este Thread:

Pesquisa Avançada
Display Modes Esta taxa Thread
Esta taxa Thread:

Destacamento Regimento
Você não pode postar novas threads
Você não pode postar respostas
Você não pode postar anexos
Você não pode editar suas postagens

BB code é Ligado
Smilies são Ligado
[IMG] código é Ligado
Código HTML é Desligado
Trackbacks são Ligado
Pingbacks são Ligado
Refbacks são Ligado




Todos os horários são GMT -4. A hora é agora 09:26.


Powered by: vBulletinCopyright © 2000 - 2006, Jelsoft Enterprises Limited. Língua Traduções Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
O UNIX e Linux Fóruns Content Copyright © 1993-2009. Todos os Direitos Reserved.Ad Gestão por RedTyger

Content Relevant URLs por vBSEO 3.2.0