Não é possível encontrar um arquivo por conteúdo

1

O arquivo contém a seguinte linha

google.friendconnect

Eu tenho a linha do seguinte comando

cat * | grep google

No entanto, não sei sua localização.

Como você pode obter a localização precisa do arquivo sem o Ack?

    
por Léo Léopold Hertz 준영 07.06.2009 / 15:16

4 respostas

4

Para a classe geral do problema que você está descrevendo, para encontrar o arquivo que você pode executar

grep -r 'google.friendconnect' /

Onde ‘/‘ seria o caminho do diretório que você deseja pesquisar. Isso irá pesquisar recursivamente todos os arquivos nessa árvore de diretórios para essa cadeia. O comando específico apresentado demorará um pouco e produzirá muitos erros de "Permissão negada", a menos que você o execute como raiz. Já que serão os diretórios home proc, var, sys e outros usuários. Outra opção útil para o grep que você provavelmente também quer é '-n'. Isso também imprimirá o número da linha do arquivo correspondente. Como,

grep -n 'google.friendconnect' *
testfile:3:google.friendconnect

Descobri que em 90% das vezes eu uso as opções "irn" para grep: diferencia maiúsculas de minúsculas, recursivas e números de linha de impressão.

    
por 07.06.2009 / 15:22
4

Experimente o sinal -H para grep . Além disso, não use cat , por favor. Não é necessário.

grep -H google *

Para esclarecer, o -H flag força grep a imprimir o nome do arquivo. Depois de pensar sobre isso, lembrei que o sinalizador -H é o padrão quando você pesquisa mais de um arquivo. Então, neste caso, é redundante. A resposta de Andy é muito mais simples e correta.

    
por 07.06.2009 / 15:21
3

grep google *

(ao invés de usar cat, dê ao grep uma lista de nomes de arquivos e ele irá imprimir o nome dos arquivos correspondentes quando imprimir as linhas)

    
por 07.06.2009 / 15:22
1

Uma maneira ideal de pesquisar a cadeia de caracteres em todos os arquivos em um diretório para imprimir arquivos correspondentes com números de linha na linha correspondente seria semelhante à do diretório base.

grep -Hn <string_of_interest> 'find . -type f'

Isso é sem usar o AWK (que é o que você quis dizer, eu acho).

    
por 07.06.2009 / 15:28

Tags