使用正则表达式

Upendra

我正在尝试将序列末尾的三个字母代码替换为任何东西(基本上删除),sed但不适用于多个正则表达式模式。这是序列的示例

GCAAAAAGTTGTATAGTCACACAACCTAGACTTATATCGTCTGCTATTCATTAG
GCAAAAAGTTGTATAGTCACACAACCTAGACTTATATCGTCTGCTATTCATTAA
GCAAAAAGTTGTATAGTCACACAACCTAGACTTATATCGTCTGCTATTCATTGA

当我尝试regex单独使用sed它时

echo "GCAAAAAGTTGTATAGTCACACAACCTAGACTTATATCGTCTGCTATTCATTAG" | sed 's/TAG$//'
echo "GCAAAAAGTTGTATAGTCACACAACCTAGACTTATATCGTCTGCTATTCATTAA" | sed 's/TAA$//'
echo "GCAAAAAGTTGTATAGTCACACAACCTAGACTTATATCGTCTGCTATTCATTAG" | sed 's/TAG$//'

但是,当我尝试包含多个正则表达式时,它不起作用

echo "GCAAAAAGTTGTATAGTCACACAACCTAGACTTATATCGTCTGCTATTCATTAG" |
sed 's/(TAG$|TAA$|TGA$)//'

有人可以指出我做错了什么吗?

阿努巴瓦

您需要在sed中使用扩展的正则表达式开关:

sed -r 's/(TAG|TAA|TGA)$//'

或在OSX上:

sed -E 's/(TAG|TAA|TGA)$//'

或没有扩展正则表达式的sed(尽管在OSX上不起作用):

sed 's/\(TAG\|TAA\|TGA\)$//'

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章