다음과 같은 문자열이 있습니다.
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 foo
with bar
"를 의미하지만 우리의 경우에는 단순히 무엇이든 바꾸는 것입니다(따라서 실제로는 제거하는 것뿐입니다 foo
).