免费注册 查看新帖 |

Chinaunix

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

请问如何实现这个要求? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-10-09 16:03 |只看该作者 |倒序浏览
本帖最后由 gqbfree 于 2010-10-09 16:06 编辑

对shell不太熟悉,要求如下,有一行字符串(从文件中读出),假设格式如下:

abcd efgh igkl

现在查找“gh”子字符串,只要匹配就可以,不要求全串匹配。 比如上面这行就是符合要求的。
跟一般的匹配相比,这个要求多了2点:1.一行中可能出现空格;2. 只要匹配到就可以,不需要是全匹配。不需要考虑“abcd efg higk”这样的特殊情况。


这个咋办? 网上查了很多,感觉无法解决。  有空的兄弟过来帮一把

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
2 [报告]
发表于 2010-10-09 16:08 |只看该作者
echo "abcd efgh igkl"|grep gh

论坛徽章:
0
3 [报告]
发表于 2010-10-09 16:09 |只看该作者
感觉没有什么特殊的需求
grep "gh" file
不就行了么?

论坛徽章:
0
4 [报告]
发表于 2010-10-09 16:18 |只看该作者
楼上的都可以的.楼主可能是个新手,对命令不了解吧!


sed -n '/gh/p' YRFILE

awk '$0 ~ /gh/' YRFILE

grep '.*gh.*' YRFILE

论坛徽章:
0
5 [报告]
发表于 2010-10-11 10:31 |只看该作者
我觉得 echo "abcd efg higkl" |egrep 'g +h' 可以吧?  楼主还要匹配中间有空格的情况呢.

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
6 [报告]
发表于 2010-10-11 11:44 |只看该作者
回复 4# todayhero


awk的$0 ~是多余的
grep的.*是多余的

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
7 [报告]
发表于 2010-10-11 11:44 |只看该作者
回复 5# starB6


不是。
再看看楼主的需求吧^_^
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP