Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2079293
  • 博文数量: 470
  • 博客积分: 10206
  • 博客等级: 上将
  • 技术积分: 5620
  • 用 户 组: 普通用户
  • 注册时间: 2008-07-03 12:50
文章分类

全部博文(470)

文章存档

2012年(1)

2011年(18)

2010年(47)

2009年(404)

分类:

2009-09-02 15:24:21

[] [] [] [] []
  帅哥
骑士




CU编号: 372862
注册:2006-2-15
最后登录: 2009-09-01
帖子:
精华:0







状态:...离线...

[] [] [博客]


[]     顶部
发表于 2009-9-1 15:53 

比如我有一个文本。
a
begin
1          <-----  delete
a          <-----  delete
2          <-----  delete
end
c
begin
c
end
a
begin
1

我想删除第一个begin开始,end结束的内容。
a
begin
end
c
begin
c
end
a
begin
1



您对本贴的看法:
| | |
  帅哥 (黑哥)
法师



CU编号: 631768
注册:2007-10-22
最后登录: 2009-09-02
帖子:
精华:0







来自:小山村
状态:...在线...

[] [] [博客]


[]     顶部
发表于 2009-9-1 16:11 

gsed:

CODE:
sed '0,/begin/b;0,/end/{/end/!d}' urfile

awk:

CODE:
awk -v RS='(begin|end)\n' 'NR!=2{printf $0}{printf RT}' urfile




您对本贴的看法:

__________________________________

LIVE FREE OR DIE!     K.I.S.S.  DRY


| | |

骑士



CU编号: 2340978
注册:2009-8-14
最后登录: 2009-09-02
帖子:
精华:0







状态:...离线...

[] [] [博客]


[]     顶部
发表于 2009-9-1 16:22 

喜欢用sed ,:mrgreen: :mrgreen: :mrgreen:



您对本贴的看法:

__________________________________

如果你恨一个男人,就把他的女人揍成李宇春,让他无法享受上半身的快乐,
如果你狠一个女人,就把她的男人揍成李宇春,让她无法享受下半身的快乐。
| | |
  帅哥 (黑哥)
法师



CU编号: 631768
注册:2007-10-22
最后登录: 2009-09-02
帖子:
精华:0







来自:小山村
状态:...在线...

[] [] [博客]


[]     顶部
发表于 2009-9-1 16:25 

awk '/begin|end/{d++;print;next}d!=1' urfile



您对本贴的看法:

__________________________________

LIVE FREE OR DIE!     K.I.S.S.  DRY


| | |
  帅哥
骑士




CU编号: 372862
注册:2006-2-15
最后登录: 2009-09-01
帖子:
精华:0







状态:...离线...

[] [] [博客]


[]     顶部
发表于 2009-9-1 16:33 



QUOTE:
原帖由 blackold 于 2009-9-1 16:25 发表
awk '/begin|end/{d++;print;next}d!=1' urfile

非常感谢,这个很好。



您对本贴的看法:
| | |
  帅哥
天使



CU编号: 75493
注册:2003-7-25
最后登录: 2009-09-02
帖子:
精华:0







来自:Hangzhou
状态:...在线...

[] [] [博客]


[]     顶部
发表于 2009-9-1 17:00 

写一个练习一下……

CODE:
awk '/begin/&&a==0{print;while($0!~/end/)getline;a++}1' urfile




您对本贴的看法:
| | |
  帅哥 (狼烟)
天使
八十万色狼总教头



CU编号: 547805
注册:2007-4-5
最后登录: 2009-09-02
帖子:
精华:0







来自:北京
状态:...离线...

[] [] [博客]


[]     顶部
发表于 2009-9-1 18:17 



CODE:
sed -n '0,/begin/p;/end/,$p' URFILE




您对本贴的看法:
| | |

精灵王
Loa



CU编号: 1650889
注册:2009-5-16
最后登录: 2009-09-02
帖子:
精华:0







状态:...离线...

[] [] [博客]


[]     顶部
发表于 2009-9-1 19:24 

回复 #4 blackold 的帖子

这想法,,真牛



您对本贴的看法:

__________________________________

我觉得我还可以抢救一下...............
| | |

精灵王




CU编号: 1127759
注册:2009-3-16
最后登录: 2009-09-02
帖子:
精华:0







状态:...在线...

[] [] [博客]


[]     顶部
发表于 2009-9-1 20:28 

比不上大牛,简单点,可以分两步做。

第一步,awk '/begin/,/end/{print $1,“\t”,NR}' test,用肉眼看begin和end之间的行数。

第二部,sed '3,5d' test,删除就可以了。

[ 本帖最后由 小木虫子 于 2009-9-1 20:30 编辑 ]



您对本贴的看法:
| | |

精灵




CU编号: 358466
注册:2006-1-4
最后登录: 2009-09-02
帖子:
精华:0







状态:...在线...

[] [] [博客]


[]     顶部
发表于 2009-9-2 11:30 

sed的带入貌似我在shell外面可以 里面就不行了...奇怪
#!/bin/bash
FILE="abc.txt"

ab=`grep -n "begin" $FILE|head -n 1|awk -F: '{print $1}'`
ba=`grep -n "end" $FILE|head -n 1|awk -F '{print $1}'`

sed ''"$ab"','"$ba"'d' abc.txt

不是 '"$ab"'
这样可以带入变量么



您对本贴的看法:
| | |

» » »
[] [] [] [] []
  帅哥
精灵



CU编号: 159332
注册:2004-5-19
最后登录: 2009-09-02
帖子:
精华:0







状态:...离线...

[] [] [博客]


[]     顶部
发表于 2009-9-2 12:10 



QUOTE:
原帖由 blackold 于 2009-9-1 16:25 发表
awk '/begin|end/{d++;print;next}d!=1' urfile

应该用exit,不检索后面的文件内容会刚好点吧



您对本贴的看法:

__________________________________

任何学校都不能以学生为赚钱对象!没有那个国家把学生做为商品和财源来榨取的。

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