免费注册 查看新帖 |

Chinaunix

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

[文本处理] 用正则表达式匹配结果再匹配,应该怎么写这个正则表达式? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-05-07 10:54 |只看该作者 |倒序浏览
例如当前目录下有以下文件:
AAAA.com
AAAA
AAAATT
BBBB
CCCC.com
CCCC
CCCCDDDD


需要有一个正则表达式实现如下结果:
AAAA.com
AAAA
CCCC.com
CCCC

这个正则表达式该怎么写?高手多多指教啊!!

我的想法是先找到.com结尾的词,再截取前面的内容,最后把这两种结果合并。请高手教我!谢谢

论坛徽章:
780
金牛座
日期:2014-02-26 17:49:58水瓶座
日期:2014-02-26 18:10:15白羊座
日期:2014-04-15 19:29:52寅虎
日期:2014-04-17 19:43:21酉鸡
日期:2014-04-19 21:24:10子鼠
日期:2014-04-22 13:55:24卯兔
日期:2014-04-22 14:20:58亥猪
日期:2014-04-22 16:13:09狮子座
日期:2014-05-05 22:31:17摩羯座
日期:2014-05-06 10:32:53处女座
日期:2014-05-12 09:23:11子鼠
日期:2014-05-21 18:21:27
2 [报告]
发表于 2014-05-07 11:04 |只看该作者
  1. sed -n '/\.com/p;s/\.com//p'  i
  2. AAAA.com
  3. AAAA
  4. CCCC.com
  5. CCCC
复制代码
回复 1# hyxer


   

论坛徽章:
3
酉鸡
日期:2014-04-23 17:17:56丑牛
日期:2014-05-08 11:41:302015亚冠之德黑兰石油
日期:2015-08-03 11:14:27
3 [报告]
发表于 2014-05-07 11:08 |只看该作者
cat 1 | sed '/\.com/!d' | sed 'p;s/.com//'
AAAA.com
AAAA
CCCC.com
CCCC

论坛徽章:
0
4 [报告]
发表于 2014-05-07 13:39 |只看该作者
感谢两位高手,我现在要实现的目的是写一个通用的正则表达式,不一定在shell里用,有没有办法不用sed,awk来实现这样功能的纯正则表达式

论坛徽章:
780
金牛座
日期:2014-02-26 17:49:58水瓶座
日期:2014-02-26 18:10:15白羊座
日期:2014-04-15 19:29:52寅虎
日期:2014-04-17 19:43:21酉鸡
日期:2014-04-19 21:24:10子鼠
日期:2014-04-22 13:55:24卯兔
日期:2014-04-22 14:20:58亥猪
日期:2014-04-22 16:13:09狮子座
日期:2014-05-05 22:31:17摩羯座
日期:2014-05-06 10:32:53处女座
日期:2014-05-12 09:23:11子鼠
日期:2014-05-21 18:21:27
5 [报告]
发表于 2014-05-07 13:41 |只看该作者
回复 4# hyxer
AAAA.com的下一行必然是需要的AAAA吗?


   

论坛徽章:
780
金牛座
日期:2014-02-26 17:49:58水瓶座
日期:2014-02-26 18:10:15白羊座
日期:2014-04-15 19:29:52寅虎
日期:2014-04-17 19:43:21酉鸡
日期:2014-04-19 21:24:10子鼠
日期:2014-04-22 13:55:24卯兔
日期:2014-04-22 14:20:58亥猪
日期:2014-04-22 16:13:09狮子座
日期:2014-05-05 22:31:17摩羯座
日期:2014-05-06 10:32:53处女座
日期:2014-05-12 09:23:11子鼠
日期:2014-05-21 18:21:27
6 [报告]
发表于 2014-05-07 13:59 |只看该作者
回复 4# hyxer


   

论坛徽章:
145
技术图书徽章
日期:2013-10-01 15:32:13戌狗
日期:2013-10-25 13:31:35金牛座
日期:2013-11-04 16:22:07子鼠
日期:2013-11-18 18:48:57白羊座
日期:2013-11-29 10:09:11狮子座
日期:2013-12-12 09:57:42白羊座
日期:2013-12-24 16:24:46辰龙
日期:2014-01-08 15:26:12技术图书徽章
日期:2014-01-17 13:24:40巳蛇
日期:2014-02-18 14:32:59未羊
日期:2014-02-20 14:12:13白羊座
日期:2014-02-26 12:06:59
7 [报告]
发表于 2014-05-07 14:31 |只看该作者
回复 4# hyxer

How about this ...

$ grep -A1 "[.]com" FILE
AAAA.com
AAAA
--
CCCC.com
CCCC

   

论坛徽章:
8
戌狗
日期:2013-10-12 11:37:19双子座
日期:2014-05-06 14:40:39巨蟹座
日期:2014-06-14 09:22:18戌狗
日期:2014-09-18 16:05:44巨蟹座
日期:2014-12-27 16:37:26酉鸡
日期:2015-01-20 18:39:022015年亚洲杯之沙特阿拉伯
日期:2015-04-20 22:38:242015亚冠之萨济拖拉机
日期:2015-06-19 16:01:03
8 [报告]
发表于 2014-05-07 14:55 |只看该作者
本帖最后由 prcardin 于 2014-05-07 16:03 编辑

这grep在sed awk随行呀

这要得类似aaaa.com和aaaa是紧跟着的,顺序不能混

回复 7# jason680


   

论坛徽章:
0
9 [报告]
发表于 2014-05-07 15:33 |只看该作者
回复 6# Herowinter


AAAA.com的下一行不一定是AAAA
你的这个已经很接近了,下面的场景:

AAAA.com
AAAA
AAAATT
AAAATT.com
BBBB
CCCC.com
CCCC
CCCCDDDD


大牛们继续啊


   

论坛徽章:
0
10 [报告]
发表于 2014-05-07 15:36 |只看该作者
Herowinter 发表于 2014-05-07 13:59
回复 4# hyxer


非常感谢Herowinter,你的答案已经很接近了,但是顺序是不定的,所以还差一点点
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP