假设我有一个文件
>Species_Name|KIOOL
AATATATATACACACAAGAGAGGA
>SPECIES_name|KUI
AATTAGAGAGA
>Species_names|POPPO
ATATGAATATA
我如何在bash中获取一个新文件,例如:
>Species_Name
AATATATATACACACAAGAGAGGA
>SPECIES_name
AATTAGAGAGA
>Species_names
ATATGAATATA
我尝试了sed 's@|*@@'g my file
,但是它不起作用
谢谢
答案 0 :(得分:3)
|*
匹配零个或多个竖线。您似乎想要匹配一个垂直条,后跟零个或多个字母数字字符。试试:
$ sed 's/|[[:alnum:]]*//' file
>Species_Name
AATATATATACACACAAGAGAGGA
>SPECIES_name
AATTAGAGAGA
>Species_names
ATATGAATATA
在修改后的问题中,您似乎希望删除第一个竖线之后的所有内容。在这种情况下,请用[[:alnum:]]
替换.
,因为.
会匹配任何内容:
$ sed 's/|.*//' file
>Species_Name
AATATATATACACACAAGAGAGGA
>SPECIES_name
AATTAGAGAGA
>Species_names
ATATGAATATA