免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 3884 | 回复: 21
打印 上一主题 下一主题

关于文件筛选问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-10-08 16:55 |只看该作者 |倒序浏览
有一文本:a.txt
aaaa
..............................
bh:1234
.............................
..........................
.......................
bbbb
aaaa
.............................
bh:2345
.............................
.............................
bbbb
aaaa
..............................
bh:3456
................................
..............................
..................
...............
bbbb
我想要将含bh:2345的aaaa到bbbb一段截取出来。

论坛徽章:
0
2 [报告]
发表于 2006-10-08 20:30 |只看该作者

论坛徽章:
0
3 [报告]
发表于 2006-10-08 21:38 |只看该作者
你试试看
  1. csplit -k a.txt '/^bh:[0-9]*/' '{*}'
复制代码

然后看 xx02,是不是这个意思?
还是这样:
先 sed -n '/bbbb/d' a.txt > b.txt
然后 csplit -k b.txt '/aaaa/' '{*}'
再找 xx02

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
4 [报告]
发表于 2006-10-08 22:52 |只看该作者

  1. awk 'BEGIN{RS="aaaa"}/bh:2345/{print RS,$0}' urfile
复制代码

论坛徽章:
0
5 [报告]
发表于 2006-10-09 01:07 |只看该作者
楼上方法比较简洁

论坛徽章:
0
6 [报告]
发表于 2006-10-09 09:57 |只看该作者
火兄的awk就是牛

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
7 [报告]
发表于 2006-10-09 10:04 |只看该作者
原帖由 cyaln 于 2006-10-9 09:57 发表
火兄的awk就是牛

晕倒ing

论坛徽章:
0
8 [报告]
发表于 2006-10-09 11:41 |只看该作者
火兄的方法我运行不对
eg:
aa.txt

aaaa
gd_20060909510720000_gdkj01
gd_20060909510720000_gdkj02
bbbb
aaaa
ls_20060909510720000_dcc_cratmdet_temp
bh:111
ls_20060909510720000_dcc_crcrdcrd_temp
ls_20060909510720000_dcc_fcmaudi
ls_20060909510720000_dcc_saacnacn_temp
bbbb
aaaa
ls_20060909510720000_dcc_saacnagr
ls_20060909510720000_dcc_saacnamt_temp
ls_20060909510720000_dcc_saacnevt_temp
ls_20060909510720000_dcc_saacntra
ls_20060909510720000_dcc_saacntxn_temp
ts_20060909510720000_pub_ptlsb_h
ts_20060909510720000_qy_satqydz
bbbb
用火兄的方法
awk 'BEGIN{RS="aaaa"}/bh:111/{print RS,$0}' aa.txt
得出的结论
aaaa tmdet_temp
bh:111
ls_20060909510720000_dcc_crcrdcrd_temp
ls_20060909510720000_dcc_fcm
我是在sco.505上运行的


我想要的是:
aaaa
ls_20060909510720000_dcc_cratmdet_temp
bh:111
ls_20060909510720000_dcc_crcrdcrd_temp
ls_20060909510720000_dcc_fcmaudi
ls_20060909510720000_dcc_saacnacn_temp
bbbb

[ 本帖最后由 teatree 于 2006-10-9 11:43 编辑 ]

论坛徽章:
7
荣誉版主
日期:2011-11-23 16:44:17子鼠
日期:2014-07-24 15:38:07狮子座
日期:2014-07-24 11:00:54巨蟹座
日期:2014-07-21 19:03:10双子座
日期:2014-05-22 12:00:09卯兔
日期:2014-05-08 19:43:17卯兔
日期:2014-08-22 13:39:09
9 [报告]
发表于 2006-10-09 11:47 |只看该作者
原帖由 teatree 于 2006-10-9 11:41 发表
...
用火兄的方法
awk 'BEGIN{RS="aaaa"}/bh:1111/{print RS,$0}' aa.txt
得出的结论
aaaa tmdet_temp
bh:111
ls_20060909510720000_dcc_crcrdcrd_temp
ls_20060909510720000_dcc_fcm
我是在sco.505上运行的

楼上写错了,bh:1111<>bh:111

论坛徽章:
7
荣誉版主
日期:2011-11-23 16:44:17子鼠
日期:2014-07-24 15:38:07狮子座
日期:2014-07-24 11:00:54巨蟹座
日期:2014-07-21 19:03:10双子座
日期:2014-05-22 12:00:09卯兔
日期:2014-05-08 19:43:17卯兔
日期:2014-08-22 13:39:09
10 [报告]
发表于 2006-10-09 11:51 |只看该作者
可能是awk不支持多字符RS
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP