매우 복잡한 상황이 발생했습니다. 정렬 후 다음과 같은 txt 파일이 있습니다.
<!DOCTYPE html>
<!-- saved from url=
(0084)https://www.ncbi.nlm.nih.gov/Structure/cdd/cddsrv>gi|148227144
------------maapaseescssklrsvsvdlnsdpalqidipdalserdkvkftvhtktklpnfknpefdvarfhedf
>gi|57525139
--------------------------------------------------------------------------------
---------------------------------mqklgegevsmtkeefakmkqeleaeylavfkktvssheiflqriss
>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">下载视频</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) 처음부터 항상 일치했기 ^
때문에 중복되었기 때문에 제거했고 , (2) 귀하의 예에서 이를 유지하고 싶다는 것을 보여주었기 때문에 교체를 넣었습니다. (3) I 이 옵션은 제거되었습니다 스크립트가 요구 사항을 충족하는지 확인할 때까지 다시 추가하지 않는 것이 좋습니다..*
gi|
-i