在 Perl 中查找和替换字符串

Find and replace a string in Perl

我有以下命令行:

perl -i -pe 's/_GSV*//g' file.fasta

我的目标是改变一些具有以下模式的序列:

GSVIVG01006342001_GSVIVT01006342001

我想找到所有以 _GSV 开头并以任何内容结尾的序列(这就是我放置“*”的原因)并且不替换任何内容。

当我 运行 我的命令时,它只识别 _GSV 并且 return 对我来说:

GSVIVG01006342001IVT01006342001

我想要那个:

GSVIVG01006342001

有人能告诉我我的命令行有什么问题吗?

在 * 之前,包含一个表示任何字符的点

perl -i -pe 's/_GSV.*//g' file.fasta

您还可以包含符号 $ 以确保到达字符串末尾

perl -i -pe 's/_GSV.*$//g' file.fasta