Execute grep ou outros comandos em arquivos em um servidor da web

2

Eu tenho arquivos em outro domínio. Qual é a melhor maneira de usar comandos neles como o grep?

wget http://path/to/file.txt | grep search

No entanto, isso não funciona. Eu acho que posso usar curl , mas existe um método mais eficiente?

    
por dukevin 18.09.2014 / 01:33

2 respostas

1

Você também pode usar curl para fazer isso, além de wget .

$ curl -s <url> | grep <pattern>

Exemplo

$ curl -s http://textfiles.com/100/914bbs.txt | grep Colorama
965-7600 /Colorama        / CoCo / 300/1200 /General BBS
Detalhes dos interruptores
   -s, --silent
        Silent  or  quiet  mode.  Don't  show progress meter or error 
        messages.  Makes Curl mute. It will still output the data you ask 
        for, potentially even to the terminal/stdout unless you redirect it.
    
por 18.09.2014 / 04:20
2

Para um pipeline funcionar, o primeiro comando precisa ser gravado na saída padrão . wget normalmente não faz isso, mas há uma maneira de solicitá-lo. Na página man do wget (1):

-O file
--output-document=file
The documents will not be written to the appropriate files, but all will be concatenated together and written to file. If - is used as file, documents will be printed to standard output

Então faça assim

wget -O - http://what/ever | grep something

Você pode achar que a saída de relatório de progresso de wget é irritantemente detalhada neste contexto. Nesse caso, adicione a opção -q para desativá-la.

wget -q -O - http://what/ever | grep something

Depois, você não obterá nada, exceto as linhas correspondentes como saída.

    
por 18.09.2014 / 02:29

Tags