我有一个看起来像这样的字符串:
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/'
意思是“替换foo
为bar
”,但在我们的例子中,我们只是简单地替换了任何内容(所以我们实际上只是删除了foo
)。