免费注册 查看新帖 |

Chinaunix

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

请高手帮我写一下这个shell [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-07-04 19:44 |只看该作者 |倒序浏览
各位老大,你们好!
我请教下一个问题,比如有一个文件,内容如下:
test
aaaaaaaaaaaa
111 123 111
what
bbbbbbbbbbbb
222 321 111
find
cccccccccccc
111 123 111
this
dddddddddddd
222 123 111
eeeeeeeeeeee
111 321 333
ffffffffffff
111 123 111
gggggggggggg
111 321 111

需求:我现在要生成一个新的文件。格式如下:
aaaaaaaaaaaa
111 123 111
find
cccccccccccc
111 123 111
dddddddddd
222 123 111
ffffffffffff
111 123 111
(就是,找出所有含‘123’的行,并且同时把这行的上一行也显示出来)

请高手帮我写一下这个shell。谢谢!

论坛徽章:
0
2 [报告]
发表于 2006-07-05 00:25 |只看该作者
grep -A1 (-B1) '123' urfile

论坛徽章:
0
3 [报告]
发表于 2006-07-05 00:43 |只看该作者
原帖由 vio 于 2006-7-5 00:25 发表
grep -A1 (-B1) '123' urfile



[devis@speed22 _devis]$ grep -A1 (-B1) '123' 4
-bash: syntax error near unexpected token `('

不行吧

论坛徽章:
0
4 [报告]
发表于 2006-07-05 09:49 |只看该作者

  1. [0 No.1980 huan@deb ~/tmp]$ cat a.txt
  2. test
  3. aaaaaaaaaaaa
  4. 111 123 111
  5. what
  6. bbbbbbbbbbbb
  7. 222 321 111
  8. find
  9. cccccccccccc
  10. 111 123 111
  11. this
  12. dddddddddddd
  13. 222 123 111
  14. eeeeeeeeeeee
  15. 111 321 333
  16. ffffffffffff
  17. 111 123 111
  18. gggggggggggg
  19. 111 321 111
  20. [0 No.1981 huan@deb ~/tmp]$ awk '$0 !~ /123/ {pre=$0;} $0 ~ /123/{print pre;print $0}' a.txt
  21. aaaaaaaaaaaa
  22. 111 123 111
  23. cccccccccccc
  24. 111 123 111
  25. dddddddddddd
  26. 222 123 111
  27. ffffffffffff
  28. 111 123 111

  29. [0 No.1982 huan@deb ~/tmp]$            
复制代码
            

按楼主的要求
应该是上面的结果
不过不知道楼主是怎么把‘find’也打出来的?

论坛徽章:
0
5 [报告]
发表于 2006-07-06 02:46 |只看该作者
awk '$0 !~ /123/ {pre=$0;} $0 ~ /123/{print pre;print $0}' a.txt
GOOD;
不过看不懂,还请高手分析一下。。。

论坛徽章:
0
6 [报告]
发表于 2006-07-06 08:55 |只看该作者
原帖由 liang573728 于 2006-7-5 00:43 发表



[devis@speed22 _devis]$ grep -A1 (-B1) '123' 4
-bash: syntax error near unexpected token `('

不行吧




  1.   -B, --before-context=NUM  print NUM lines of leading context
复制代码
  1.   -A, --after-context=NUM   print NUM lines of trailing context  
复制代码

论坛徽章:
0
7 [报告]
发表于 2006-07-06 14:34 |只看该作者
[devis@speed22 _devis]$ grep -B1 '123' 4|grep -v '-'
aaaaaaaaaaaa
111 123 111
cccccccccccc
111 123 111
dddddddddddd
222 123 111
ffffffffffff
111 123 111
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP