免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: levinswong
打印 上一主题 下一主题

能把这段代码完全看懂,就可以说你掌握sed了 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2010-04-02 18:27 |只看该作者
回复 9# samlumengjun


    哦, 是这样的,假如这个脚本的名字叫okgrep,使用方法是 ./okgrep   "my window"     file1 file2 file3 ...

论坛徽章:
8
摩羯座
日期:2014-11-26 18:59:452015亚冠之浦和红钻
日期:2015-06-23 19:10:532015亚冠之西悉尼流浪者
日期:2015-08-21 08:40:5815-16赛季CBA联赛之山东
日期:2016-01-31 18:25:0515-16赛季CBA联赛之四川
日期:2016-02-16 16:08:30程序设计版块每日发帖之星
日期:2016-06-29 06:20:002017金鸡报晓
日期:2017-01-10 15:19:5615-16赛季CBA联赛之佛山
日期:2017-02-27 20:41:19
12 [报告]
发表于 2010-04-02 19:45 |只看该作者
硬是没看懂要这两句干什么用
search=$1
shift

直接在后面用$1好了,还要shift,后面又没用到$2.
samlumengjun 发表于 2010-04-02 18:14



for file不是用到 $*了么?

论坛徽章:
0
13 [报告]
发表于 2010-04-02 19:51 |只看该作者
硬是没看懂要这两句干什么用
search=$1
shift

直接在后面用$1好了,还要shift,后面又没用到$2.
samlumengjun 发表于 2010-04-02 18:14



shift的作用跟shell的shift作用是一样的。
seach=$1
shift
之后,$2就变成$1了

论坛徽章:
0
14 [报告]
发表于 2010-04-02 23:09 |只看该作者
如题。代码出自sed & awk一书的高级sed命令一章。对了,说下作用。
查找跨行的单词,简单的举个例子:
po ...
levinswong 发表于 2010-04-02 16:24



    看后面知道作用,不过这玩意确实变态了点。 - -!

论坛徽章:
4
CU大牛徽章
日期:2013-03-13 15:29:07CU大牛徽章
日期:2013-03-13 15:29:49CU大牛徽章
日期:2013-03-13 15:30:192015年迎新春徽章
日期:2015-03-04 09:57:09
15 [报告]
发表于 2010-04-02 23:24 |只看该作者
看不懂。。。。

论坛徽章:
0
16 [报告]
发表于 2010-04-03 02:25 |只看该作者
头疼, 我要边查字典 手册 才能看懂。。!!!!

论坛徽章:
0
17 [报告]
发表于 2010-04-03 02:49 |只看该作者
本帖最后由 vitas333_cu 于 2010-04-03 02:50 编辑

迷糊了。。

论坛徽章:
0
18 [报告]
发表于 2010-04-03 09:54 |只看该作者
当没有匹配的单词时,好像会默认输出最后一行的内容

论坛徽章:
0
19 [报告]
发表于 2010-04-03 12:58 |只看该作者
当没有匹配的单词时,好像会默认输出最后一行的内容
kangle000 发表于 2010-04-03 09:54


这位兄弟果然细心,看来这是原作者未发现的一个bug或者是不屑一顾吧,不管了,修正如下:
  1.    1. #!/bin/sh
  2.    2.

  3.    3. search=$1
  4.    4. shift
  5.    5. for file
  6.    6. do
  7.    7. sed '
  8.    8. /'"$search"'/b
  9.    9. $!N
  10.   10. h
  11.   11. s/.*\n//
  12.   12. /'"$search"'/b
  13.   13. g
  14.   14. s/ *\n/ /
  15.   15. /'"$search"'/{
  16.   16. g
  17.   17. b
  18.   18. }
  19.   19. g
  20.   20. D' $file
  21.   21. done
复制代码
修正后的代码可解决此bug。   
只是把N变成$!N而已。

论坛徽章:
0
20 [报告]
发表于 2010-04-03 13:25 |只看该作者
for file是干什么的?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP