Como eu redireciono a saída do comando find (que usa grep) para um arquivo de log?

6

Considere o código para pesquisar todos os arquivos que contêm o padrão "string de pesquisa":

bash-3.2$ # The below find works fine..
bash-3.2$ find . -type f -exec grep -il "search string" {} \;
bash-3.2$ # But I am unable to redirect output to a log file..
bash-3.2$ find . -type f -exec grep -il "search string" {} \ > log.txt
find: incomplete statement
bash-3.2$

Nas man pages do Solaris encontre :

-exec command   True if the executed command returns a  zero
                value  as  exit  status.   The end of command
                must be punctuated by an  escaped  semicolon.
                A  command  argument  {}  is  replaced by the
                current path name.

Portanto, parece que um ponto e vírgula escapado é obrigatório. Existe outra maneira de fazer isso?

    
por Kent Pawar 14.05.2013 / 12:47

1 resposta

9

Você está excluindo o \; . Apenas faça isso:

find . -type f -exec grep -il "search string" {} \; > log.txt
    
por 14.05.2013 / 12:57