次の文字列があります。
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
)。