指定された文字が最初に表示される前のコンテンツの削除

指定された文字が最初に表示される前のコンテンツの削除

非常に複雑な状況が発生しました。ソート後、次のtxtファイルがあります。

        <!DOCTYPE html>
        <!-- saved from url= 
     (0084)https://www.ncbi.nlm.nih.gov/Structure/cdd/cddsrv&gt;gi|148227144
         ------------maapaseescssklrsvsvdlnsdpalqidipdalserdkvkftvhtktklpnfknpefdvarfhedf  
         &gt;gi|57525139
         --------------------------------------------------------------------------------
         ---------------------------------mqklgegevsmtkeefakmkqeleaeylavfkktvssheiflqriss
         &gt;gi|49899170
         -------------mtsisedsdkekarsvsvdlnndasllidipdalcerdkvkftvhtkttlssfqkpdfsvprqhedf
   </pre><iframe id="canary-tool-tip" frameborder="0" class="fat-sapphire-swordtail- 
   U1xAEvvLch4FZ9B40MDPpa-tool-tip" src="./cd07663_files/mo0yqyx4jxm3k82fauc54s.html" sty>
      <div class="xl-chrome-ext-bar__logo"></div>

      <a id="xl_chrome_ext_download" href="javascript:;" class="xl-chrome-ext-bar__option">&#19979;&#36733;&#35270;&#39057;</a>
      <a id="xl_chrome_ext_close" href="javascript:;" class="xl-chrome-ext-bar__close"></a>
    </div></body></html>

実際、私はそのようなファイルを取得したいです。

      gi|148227144
      ------------maapaseescssklrsvsvdlnsdpalqidipdalserdkvkftvhtktklpnfknpefdvarfhedf  
      gi|57525139
      --------------------------------------------------------------------------------
      ---------------------------------mqklgegevsmtkeefakmkqeleaeylavfkktvssheiflqriss
      gi|49899170
      -------------mtsisedsdkekarsvsvdlnndasllidipdalcerdkvkftvhtkttlssfqkpdfsvprqhedf

だからスクリプトに従うことはできそうですが、sed -i 's/^.*gi//'不完全なファイルができました。アドバイスをいただけますか?ありがとう

ベストアンサー1

コマンドはsed -i 's/^.*gi//'できるだけ多くの文字を一致させようとするので、最後の項目まで行のすべての内容を削除します。したがって、任意の文字列が含まれている場合、期待どおりに機能しません。gi.*gi

|このランダムな文字列にはバーがないため、パターンに追加することをお勧めします。

sed 's/.*gi|/gi|/'

注:(1)最初から常に一致していた^ため、重複しているため削除しました。 (3)Iこのオプションは削除されましたスクリプトが要件を満たしていることを確認するまで再追加しないことをお勧めします。.*gi|-i

おすすめ記事