删除某些字符串后的所有字符

时间:2013-04-21 18:31:29

标签: bash sed awk

您好我有以下文件:

>seq0 id345
FQTWEEFSRAAEKLYLADPMKVRVVLKYRHVDGNLCIKVTDDLVCLVYRTDQAQDVKKIEKF
>seq1 id1045
KYRTWEEFTRAAEKLYQADPMKVRVVLKYRHCDGNLCIKVTDDVVCLLYRTDQAQDVKKIEKFHSQLMRLME 

我试图删除>之后的任何字符所以我得到了:

>
FQTWEEFSRAAEKLYLADPMKVRVVLKYRHVDGNLCIKVTDDLVCLVYRTDQAQDVKKIEKF
>
KYRTWEEFTRAAEKLYQADPMKVRVVLKYRHCDGNLCIKVTDDVVCLLYRTDQAQDVKKIEKFHSQLMRLME  

我几乎得到了这个:

sed -e 's/>.*//'
然而,这也删除了>离开我的符号:

FQTWEEFSRAAEKLYLADPMKVRVVLKYRHVDGNLCIKVTDDLVCLVYRTDQAQDVKKIEKF

KYRTWEEFTRAAEKLYQADPMKVRVVLKYRHCDGNLCIKVTDDVVCLLYRTDQAQDVKKIEKFHSQLMRLME 

我如何保持>字符?

感谢。

2 个答案:

答案 0 :(得分:3)

最简单的解决方法是:

sed 's/>.*/>/'

答案 1 :(得分:3)

针对更复杂案例的可重用解决方案(使用捕获组):

sed -r 's/(>).*/\1/'