Webサーバー上のファイルに対してgrepまたは他のコマンドを実行する

Webサーバー上のファイルに対してgrepまたは他のコマンドを実行する

別のドメインにファイルがあります。コマンド(grepなど)を使用する最良の方法は何ですか?

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

しかし、これはうまくいきません。これを使っても構いませんが、curlもっと効率的な方法はありませんか?

答え1

パイプが正しく機能するには、最初のコマンドを作成する必要があります。標準出力wgetこれは一般的には行われませんが、要求する方法があります。 wget(1) のマニュアルページから:

-O file
--output-document=file
document は該当ファイルに書き込まず、すべての文書を合わせてファイルに書き込む。 - をファイルとして使用すると、文書は標準出力として印刷されます。

だからこうやって

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

wgetこのコンテキストでは、進捗レポートの出力が非常に冗長であることがわかります。この場合、-q静かにするオプションを追加してください。

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

これにより、一致する行を除いて何も出力されません。

答え2

curlを使用してこれを行うこともできますwget

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

はい

$ curl -s http://textfiles.com/100/914bbs.txt | grep Colorama
965-7600 /Colorama        / CoCo / 300/1200 /General BBS
スイッチの詳細
   -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.

関連情報