2016-04-06 17 views
7

少しの免責事項、私はプログラミングにあまり慣れていないので、間違った言葉を混乱させて使用している場合は、私にはごめんなさい。grepへのパイプカールの出力

ウェブページから特定の情報を抽出し、curl関数の出力をgrepにパイプすることでこれを試みることができます。ああ、これはCygwinにあります。

だけ

$ curl www.ncbi.nlm.nih.gov/gene/823951 

に入力する場合、端末は、私がHTMLであると信じるものの中に全体のWebページを印刷します。

$ curl www.ncbi.nlm.nih.gov/gene/823951 | grep "Gene Symbol" 

しかし、その代わりに、すべてのWebページを印刷すると、端末が私を与える:

% Total % Received % Xferd Average Speed Time Time  Time Current 
           Dload Upload Total Spent Left Speed 
100 142k 0 142k 0  0 41857  0 --:--:-- 0:00:03 --:--:-- 42083 

でき、ここからは私には何でも検索用語とgrepの機能へのパイプこの出力はして欲しいと考えていました誰もがこれを行う理由/ウェブページ内のテキストの特定の行を検索する方法を説明します。最終的には、遺伝子名、型、説明などの情報をデータベースにコンパイルしたいので、grep関数の結果をテキストファイルにエクスポートしたいと考えていました。

ご協力いただきありがとうございます。

答えて

9

Curlは端末に出力されていないことを検出し、プログレスメーターを表示します。 -sで進捗メーターを抑制することができます。

実際にHTMLデータがgrepに送信されています。しかし、そのページには "Gene Symbol"というテキストは含まれていません。 Grepは大文字と小文字を区別します(-iを指定しない限り)、 "遺伝子記号"を探しています。おそらく、また、あなたが-Aオプションを指定してgrepの出力を行うことができますHTMLの次の行、欲しい

$ curl -s www.ncbi.nlm.nih.gov/gene/823951 | grep "Gene symbol" 
    <dt class="noline"> Gene symbol </dt> 

$ curl -s www.ncbi.nlm.nih.gov/gene/823951 | grep -A1 "Gene symbol" 
    <dt class="noline"> Gene symbol </dt> 
    <dd class="noline">AT3G47960</dd> 

は、これらおよび他のオプションの詳細については、man curlman grepを参照してください。

関連する問題