我正在尝试将序列末尾的三个字母代码替换为任何东西(基本上删除),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] 删除。
我来说两句