免费注册 查看新帖 |

Chinaunix

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

[文本处理] 用shell实现查找 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-10-23 14:23 |只看该作者 |正序浏览
Users:rop_rx@101.103.34.30
Users:rop_rx@101.103.34.101
Users:rop_rx@101.103.64.154
Users:rop_rx@101.103.34.41
Users:rop_rx@101.103.64.211
Users:rop_rx@101.103.64.210
Users:rop_rx@101.103.64.100
Query:UPDATE anc_cj SET time='S', lastedit=N ,addexplain=N ,modelpic=N ,roompic=N ,ishighqulity=N WHERE proid=N
Users:rop_rx@101.103.64.211
Users:rop_rx@101.103.64.210
Users:rop_rx@101.103.64.109
Query:UPDATE anc_cj SET  lastedit=N ,addexplain=N ,modelpic=N ,roompic=N ,ishighqulity=N WHERE proid=N
Users:rop_rx@101.103.64.109
Query:UPDATE anc_cj SET qulity='S',addexplain=N ,modelpic=N ,roompic=N ,ishighqulity=N WHERE proid=N

当找到Users:rop_rx@101.103.64.211这个时,将下面的Query打印出来,其他用户Users不打印出来
如:
Users:rop_rx@101.103.64.211
Query:UPDATE anc_cj SET time='S', lastedit=N ,addexplain=N ,modelpic=N ,roompic=N ,ishighqulity=N WHERE proid=N
Users:rop_rx@101.103.64.211
Query:UPDATE anc_cj SET  lastedit=N ,addexplain=N ,modelpic=N ,roompic=N ,ishighqulity=N WHERE proid=N
而查找Users:rop_rx@101.103.34.30打印结果如下
Users:rop_rx@101.103.34.30
Query:UPDATE anc_cj SET time='S', lastedit=N ,addexplain=N ,modelpic=N ,roompic=N ,ishighqulity=N WHERE proid=N
请问怎么实现

论坛徽章:
0
8 [报告]
发表于 2012-10-24 16:56 |只看该作者
回复 7# ljwd1000


    非常感谢

论坛徽章:
0
7 [报告]
发表于 2012-10-23 18:04 |只看该作者
  1. [root@test /]# awk -v ip="101.103.64.211" '$0~ip{x=$0;while(getline a)if(a~/^Query/){print x"\n"a;break}}' ip.sql
  2. Users:rop_rx@101.103.64.211
  3. Query:UPDATE anc_cj SET time='S', lastedit=N ,addexplain=N ,modelpic=N ,roompic=N ,ishighqulity=N WHERE proid=N
  4. Users:rop_rx@101.103.64.211
  5. Query:UPDATE anc_cj SET  lastedit=N ,addexplain=N ,modelpic=N ,roompic=N ,ishighqulity=N WHERE proid=N
  6. [root@test /]# cat ip.sql
  7. Users:rop_rx@101.103.34.30
  8. Users:rop_rx@101.103.34.101
  9. Users:rop_rx@101.103.64.154
  10. Users:rop_rx@101.103.34.41
  11. Users:rop_rx@101.103.64.211
  12. Users:rop_rx@101.103.64.210
  13. Users:rop_rx@101.103.64.100
  14. Query:UPDATE anc_cj SET time='S', lastedit=N ,addexplain=N ,modelpic=N ,roompic=N ,ishighqulity=N WHERE proid=N
  15. Users:rop_rx@101.103.64.211
  16. Users:rop_rx@101.103.64.210
  17. Users:rop_rx@101.103.64.109
  18. Query:UPDATE anc_cj SET  lastedit=N ,addexplain=N ,modelpic=N ,roompic=N ,ishighqulity=N WHERE proid=N
  19. Users:rop_rx@101.103.64.109
  20. Query:UPDATE anc_cj SET qulity='S',addexplain=N ,modelpic=N ,roompic=N ,ishighqulity=N WHERE proid=N
复制代码
回复 4# kenny_hs


哪里不对?没看出来

   

论坛徽章:
5
未羊
日期:2014-08-04 16:15:21天秤座
日期:2014-08-13 13:52:372015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:56:112015亚冠之浦和红钻
日期:2015-06-29 15:30:48
6 [报告]
发表于 2012-10-23 16:56 |只看该作者
  1. awk 'BEGIN{RS="Users:rop_rx@101.103.64.211";FS="\n"}NR>1{print $(NF-1)}'
复制代码

论坛徽章:
0
5 [报告]
发表于 2012-10-23 16:32 |只看该作者
  1. awk -v i=$(awk '/Users:rop_rx@101.103.64.100/{a=NR+1;print a}' test) 'NR==i' test
复制代码
  1. [root@zhenai1212 shell]# cat test
  2. Users:rop_rx@101.103.34.30
  3. Users:rop_rx@101.103.34.101
  4. Users:rop_rx@101.103.64.154
  5. Users:rop_rx@101.103.34.41
  6. Users:rop_rx@101.103.64.211
  7. Users:rop_rx@101.103.64.210
  8. Users:rop_rx@101.103.64.100
  9. Query:UPDATE anc_cj SET time='S', lastedit=N ,addexplain=N ,modelpic=N ,roompic=N ,ishighqulity=N WHERE proid=N
  10. Users:rop_rx@101.103.64.211
  11. Users:rop_rx@101.103.64.210
  12. Users:rop_rx@101.103.64.109
  13. Query:UPDATE anc_cj SET  lastedit=N ,addexplain=N ,modelpic=N ,roompic=N ,ishighqulity=N WHERE proid=N
  14. Users:rop_rx@101.103.64.109
  15. Query:UPDATE anc_cj SET qulity='S',addexplain=N ,modelpic=N ,roompic=N ,ishighqulity=N WHERE proid=N
复制代码

论坛徽章:
0
4 [报告]
发表于 2012-10-23 16:21 |只看该作者
回复 2# ljwd1000


    我把上面哪些放在一个文件里面ip.sql里面,好像实现不了

论坛徽章:
3
CU十二周年纪念徽章
日期:2013-10-24 15:41:34子鼠
日期:2013-12-14 14:57:19射手座
日期:2014-04-25 21:23:23
3 [报告]
发表于 2012-10-23 15:52 |只看该作者
回复 1# kenny_hs
  1. #perl -lne 'if(/^Users:rop_rx\@101.103.64.211/../^Query/){$data .="$_\n" if/211$|^Query/ }END{print "$data"}' tmp
  2. Users:rop_rx@101.103.64.211
  3. Query:UPDATE anc_cj SET time='S', lastedit=N ,addexplain=N ,modelpic=N ,roompic=N ,ishighqulity=N WHERE proid=N
  4. Users:rop_rx@101.103.64.211
  5. Query:UPDATE anc_cj SET  lastedit=N ,addexplain=N ,modelpic=N ,roompic=N ,ishighqulity=N WHERE proid=N
  6. #perl -lne 'if(/^Users:rop_rx\@101.103.34.30/../^Query/){$data .="$_\n" if/30$|^Query/ }END{print "$data"}' tmp                        
  7.   Users:rop_rx@101.103.34.30
  8. Query:UPDATE anc_cj SET time='S', lastedit=N ,addexplain=N ,modelpic=N ,roompic=N ,ishighqulity=N WHERE proid=N



复制代码

论坛徽章:
0
2 [报告]
发表于 2012-10-23 14:57 |只看该作者
本帖最后由 ljwd1000 于 2012-10-23 14:57 编辑
  1. awk -v ip="101.103.64.211" '$0~ip{x=$0;while(getline a)if(a~/^Query/){print x"\n"a;break}}' file
复制代码
这样?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP