특정 모드 Unix 제거

특정 모드 Unix 제거

다음과 같은 문자열이 있습니다.

Root;rootrank;Bacteria;domain;"Actinobacteria";phylum;Actinobacteria;class;Acidimicrobidae;subclass;Acidimicrobiales;order;"Acidimicrobineae";suborder;Acidimicrobiaceae;family;Acidimicrobium;genus 

삭제하고 싶어요

root; rootrank; domain; phylum; class; subclass;order;suborder;family;genus

하지만 sed에 많은 어려움을 겪고 있습니다.

답변1

printf "%s\n" \
  "Root;rootrank;Bacteria;domain;"Actinobacteria";phylum;Actinobacteria;class;Acidimicrobidae;subclass;Acidimicrobiales;order;"Acidimicrobineae";suborder;Acidimicrobiaceae;family;Acidimicrobium;genus" \
  | sed -e 's/Root;//' \
        -e 's/rootrank;//' \
        -e 's/domain;//' \
        -e 's/phylum;//' \
        -e 's/class;//' \
        -e 's/subclass;//' \
        -e 's/order;//' \
        -e 's/suborder;//' \
        -e 's/family;//' \
        -e 's/genus//'

당신을 위한:

Bacteria;Actinobacteria;Actinobacteria;Acidimicrobidae;Acidimicrobiales;Acidimicrobineae;Acidimicrobiaceae;Acidimicrobium;

여러 명령을 함께 연결할 수 있습니다 sed. -e 's/foo/bar/'이는 "replace foowith bar"를 의미하지만 우리의 경우에는 단순히 무엇이든 바꾸는 것입니다(따라서 실제로는 제거하는 것뿐입니다 foo).

관련 정보