Saída de impressão do Ubuntu de “find” e “exec” para o arquivo [duplicado]

1

Eu tenho um comando que lista os eventos do "Magento 2", que está funcionando bem no terminal.

Eu quero que sua saída seja impressa em um arquivo, mas nenhum dos códigos abaixo funciona:

find . -type f -exec grep -n -H -A 2 -T "eventManager->dispatch(" {} \ | tee ~/MAGE2EVENTS.txt

Nem este:

find . -type f -exec grep -n -H -A 2 -T "eventManager->dispatch(" {} \ >> ~/MAGE2EVENTS.txt

Eu vejo que 'exec' foi usado neste código, o que mostra erro:

find: missing argument to '-exec'

Então, como imprimir a saída do terminal deste comando para o arquivo?

    
por Vicky Dev 04.12.2015 / 08:34

1 resposta

2

Um comando -exec deve ser finalizado com \; ou + . O \; fará com que find execute o comando uma vez para cada arquivo, e o + fará com que ele tente e execute o comando em muitos arquivos de uma só vez, tornando-o mais eficiente. Como seu grep está usando -H (nomes de arquivos de impressão), o + é a melhor escolha. Então, adicione + no final do seu comando find:

find . -type f -exec grep -n -H -A 2 -T "eventManager->dispatch(" {} + |
     tee ~/MAGE2EVENTS.txt
    
por Tung Tran 04.12.2015 / 08:44