原帖由 woodie 于 2007-5-22 11:27 发表
写起来应该很简单,不过楼主的需求描述太混乱。^_^
原帖由 woodie 于 2007-5-22 11:27 发表
写起来应该很简单,不过楼主的需求描述太混乱。^_^
原帖由 woodie 于 2007-5-22 15:36 发表
GNUsed 4.0.9,写的比较丑。^_^试试看:
sed '/title/,${0,/^$\|^#/{//p;d};}'
原帖由 Edengundam 于 2007-5-22 15:04 发表
复制代码
- sed -n -r '
- /^title/{
- x;s:\n::;x;H;
- :read
- n;
- /^$|^#/{
- x;s:.*::;x;s:^\n::;p;
- b end;
- }
- /^title/{
- x;s:^\n::;p;s:.*::;x;H;
- b read;
- }
- H;
- b read;
- }
- p;
- :end'
input fil ...
原帖由 Edengundam 于 2007-5-22 15:50 发表
title bbbbb
fdaf
<<EOF>>
当然被干掉了....
还以为你说第一个满足那些条件的东西
原帖由 woodie 于 2007-5-22 15:46 发表
记忆中楼主的平台好像没有GNU工具,遗憾,那样的话楼上的代码就帮不上忙了。^_^
原帖由 Edengundam 于 2007-5-22 15:50 发表
title bbbbb
fdaf
<<EOF>>
当然被干掉了....
还以为你说第一个满足那些条件的东西
原帖由 woodie 于 2007-5-22 15:51 发表
如果不是GNUsed,改成下面这样试试看:
sed '/title/,${ /^$\|^#/,$b end; d;}; :end'
原帖由 woodie 于 2007-5-22 18:25 发表
18楼这种情况应该算作第4种情况:无合法的结尾,后面又开始新的title段。用GNU sed可以这样:
sed '/title/,${0,//d;0,/^$\|^#\|title/{//p;d};}'
欢迎光临 Chinaunix (http://bbs.chinaunix.net/) | Powered by Discuz! X3.2 |