Chinaunix首页 | 论坛 | 博客
  • 博客访问: 5376445
  • 博文数量: 1144
  • 博客积分: 11974
  • 博客等级: 上将
  • 技术积分: 12312
  • 用 户 组: 普通用户
  • 注册时间: 2005-04-13 20:06
文章存档

2017年(2)

2016年(14)

2015年(10)

2014年(28)

2013年(23)

2012年(29)

2011年(53)

2010年(86)

2009年(83)

2008年(43)

2007年(153)

2006年(575)

2005年(45)

分类: LINUX

2006-09-29 07:56:10

如何删除匹配之间的内容但不包括匹配行
 
我有这样一个文件:
Query=4567879
    sequence jkaskdjgkjasgasa;jghsafgkas
    jfaklslgjdla;;gsdakl;gd

                                                                           score     E
PUT-ASD-WEETED-001
PUT-ASD-WEQER5-001789
>PUT-ASD-WEETED-001

SDAGDSDS
>PUT-ASD-WEQER5-001789
DSGTSDTEW
.....
......
......
是这样的,我想删除
从score     E
到以第一个以>开头的中间所有的行,但不包括score     E行和第一以>开头的行

sed '/score     E/,/^>/d' urfile
肯定是不行的,把score     E行和第一以>开头的行也删掉了?
该怎么写呢?
其中要处理的文件中含有多个score     E和第一以>开头的之间的行,均删掉。
 
 

awk -v p=1 '/score/{p=0}/>/{p=1}p' urfile

read 置顶

阅读(2859) | 评论(4) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2010-06-17 10:08:23

awk '/score/,/^>/{if($1 ~ /(score|>)/)next; else print}' ufile

chinaunix网友2009-06-10 15:40:39

awk -v a=1 '{if (a==1 && /score/) {a=0; print $0}; if(/^>/) a=1; if(a==1) print $0 }' yourfile.txt

sunshine2172008-09-17 17:17:08

awk '/score/,/^>/-1' yourfile

sunshine2172008-09-17 17:16:16

awk '/score/,/^>/' yourfile