在sed命令中正则表达式不正确

我想在批处理控制台中使用sed替换一些字符串。我的输入包括在文件中有这样的诗句:在sed命令中正则表达式不正确

$ head qiimetax_sorted.txt 

A61579.1.1437

D_0__Bacteria;D_1__Thermotogae;D_2__Thermotogae;D_3__Thermotogales;

D_4__Fervidobacteriaceae;D_5__Fervidobacterium;Ambiguous_taxa;D_7__;

D_8__;D_9__;D_10__;D_11__;D_12__;D_13__;D_14__

AAAA02020712.626.2096

D_0__Bacteria;D_1__Proteobacteria;D_2__Alphaproteobacteria;D_3__Rhizobiales;

D_4__Bradyrhizobiaceae;D_5__uncultured;D_6__Oryza sativa

Indica Group (long-grained rice);D_7__;D_8__;D_9__;D_10__;D_11__;D_12__;

D_13__;D_14__

现在我试图抹去这个sed命令的名字前的“D_number__”字符串,它没有任何替换:

sed -r 's/D_\d+__//g' qiimetax_sorted.txt > qiimesed.txt 

任何想法是哪个问题? 谢谢!

回答:

你的正则表达式语法是perl like。

所以,如果你想保留它:

perl -pe 's/D_\d+__//g' qiimetax_sorted.txt > qiimesed.tx 

或sed:

sed -r 's/D_[0-9]+__//g' qiimetax_sorted.txt > qiimesed.tx 

以上是 在sed命令中正则表达式不正确 的全部内容, 来源链接: utcz.com/qa/264313.html

回到顶部