Autor Tópico: o que há de errado com esse comando?  (Lida 1871 vezes)

Offline crixtiano

  • Usuário Ubuntu
  • *
  • Mensagens: 339
    • Ver perfil
o que há de errado com esse comando?
« Online: 10 de Abril de 2007, 15:15 »
Observe as seguintes duas linhas de comando:

Comando 1:

========================
$ grep -r "System.out" *.java
========================

e

Comando 2:

========================
$ grep -r "System.out" .
========================


Aqui nomeu PC, o comando 1 não funciona , alegando o seguinte:

========================
$ grep -r "System.out" *.java
grep: *.java: Arquivo ou diretório inexistente
========================

Já o comando 2 funciona. Tudo bem que não lista somente arquivos ".java", mas funciona. A pergunta é: pq o comando 1 não funciona? O que há de errado?

Obrigado

Cristiano





Offline goedson

  • Usuário Ubuntu
  • *
  • Mensagens: 8
    • Ver perfil
Re: o que há de errado com esse comando?
« Resposta #1 Online: 10 de Abril de 2007, 15:42 »
O que á de errado é exatamente o que a saída do comando diz:

Não existem arquivos ou diretórios que casem com o padrão *.java no diretório em que você está executando o comando.

grep -r bla *.java significa "procure por bla dentro de todos os arquivos ou diretórios (e subdiretórios destes) cujos nomes casem com *.java existentes no diretório atual".  Então ele vai procurar em "arquivo1.java" e "diretorio.java/subdiretorio/arquivo2.qualquer-extensao" mas não em "diretorio/arquivo3.java". O que você quer fazer, procurar por System.out em todos os arquivos fontes de programa java contidos no diretório atual e seus subdiretórios pode ser feito assim:

find -name "*.java" -exec grep -H System.out {} \;