別のドメインにファイルがあります。コマンド(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.