免费注册 查看新帖 |

Chinaunix

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

[文本处理] 求教sed可否实现下面的文本处理 [复制链接]

论坛徽章:
1
2015亚冠之首尔
日期:2015-11-03 18:40:52
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-12-03 10:19 |只看该作者 |倒序浏览
本帖最后由 jiawei2426 于 2013-12-03 10:38 编辑

我的初始文件如下:
CKBD2BWP7T 8 15 60 CKBD2BWP7T RDT_CKB_00 (:I(1'b0), :Z());
DFNCND2BWP7T 1 15 15 DFNCND2BWP7T RDT_DFNCN_00 (:CPN(1'b0), :D(1'b0), :Q(), :QN(), :CDN(1'b0));
LNCND2BWP7T 2 15 30 LNCND2BWP7T RDT_LNCN_00 (:EN(1'b0), :D(1'b0), :Q(), :QN());
我想用sed命令做成如下格式:
CKBD2BWP7T:I
DFNCND2BWP7T:CPN
DFNCND2BWP7T:D
DFNCND2BWP7T:CDN
LNCND2BWP7T:EN
LNCND2BWP7T:D
思路大概就是提取每一行的首字符串以及该行中带有(1'b0)字符的字符串大写字母,如果某一行含有n个(1'b0)字符的字符串,就要将该行首字符串提取n次,格式如上。求高人指点。

论坛徽章:
1
2015亚冠之首尔
日期:2015-11-03 18:40:52
2 [报告]
发表于 2013-12-03 10:22 |只看该作者
晕,怎么发上去这么多表情呢,笑脸是冒号和D,抓狂是冒号和Q

论坛徽章:
32
处女座
日期:2013-11-20 23:41:20双子座
日期:2014-06-11 17:20:43戌狗
日期:2014-06-16 11:05:00处女座
日期:2014-07-22 17:30:47狮子座
日期:2014-07-28 15:38:17金牛座
日期:2014-08-05 16:34:01亥猪
日期:2014-08-18 13:34:25白羊座
日期:2014-09-02 15:03:55金牛座
日期:2014-11-10 10:23:58处女座
日期:2014-12-02 09:17:52程序设计版块每日发帖之星
日期:2015-06-16 22:20:002015亚冠之塔什干火车头
日期:2015-06-20 23:28:22
3 [报告]
发表于 2013-12-03 10:29 |只看该作者
把你的原文本和目标文本发到代码框吧,或者禁用表情。

论坛徽章:
1
2015亚冠之首尔
日期:2015-11-03 18:40:52
4 [报告]
发表于 2013-12-03 10:34 |只看该作者
本帖最后由 jiawei2426 于 2013-12-03 10:41 编辑

禁用表情果然好使,大意了。

论坛徽章:
0
5 [报告]
发表于 2013-12-03 10:49 |只看该作者
本帖最后由 ljwd1000 于 2013-12-03 10:52 编辑
  1. awk -F'[ ,)(]' '{for(i=1;i<=NF;i++)if($(i+1)~/^1\047b0$/)print $1,$i}' file
复制代码

论坛徽章:
60
20周年集字徽章-20	
日期:2020-10-28 14:04:3015-16赛季CBA联赛之北京
日期:2016-07-06 15:42:0715-16赛季CBA联赛之同曦
日期:2016-06-12 10:38:0915-16赛季CBA联赛之佛山
日期:2016-05-27 11:54:56黄金圣斗士
日期:2015-12-02 11:44:35白银圣斗士
日期:2015-11-25 14:32:43白银圣斗士
日期:2015-11-23 12:53:352015亚冠之布里斯班狮吼
日期:2015-10-21 16:55:482015亚冠之首尔
日期:2015-09-01 16:46:052015亚冠之德黑兰石油
日期:2015-08-31 11:39:192015亚冠之萨济拖拉机
日期:2015-08-28 21:06:5315-16赛季CBA联赛之广东
日期:2016-07-12 14:58:53
6 [报告]
发表于 2013-12-03 10:53 |只看该作者
  1. awk '{for(i=1;i<=NF;i++)if($i~/b0/)print $1":"gensub(/.*:([A-Z]+).*/,"\\1",1,$i)}' file
复制代码

论坛徽章:
1
2015亚冠之首尔
日期:2015-11-03 18:40:52
7 [报告]
发表于 2013-12-03 11:02 |只看该作者
非常感谢,可以运行,结果OK回复 6# reyleon


   

论坛徽章:
32
处女座
日期:2013-11-20 23:41:20双子座
日期:2014-06-11 17:20:43戌狗
日期:2014-06-16 11:05:00处女座
日期:2014-07-22 17:30:47狮子座
日期:2014-07-28 15:38:17金牛座
日期:2014-08-05 16:34:01亥猪
日期:2014-08-18 13:34:25白羊座
日期:2014-09-02 15:03:55金牛座
日期:2014-11-10 10:23:58处女座
日期:2014-12-02 09:17:52程序设计版块每日发帖之星
日期:2015-06-16 22:20:002015亚冠之塔什干火车头
日期:2015-06-20 23:28:22
8 [报告]
发表于 2013-12-03 11:17 |只看该作者
  1. [root@localhost ~]# perl -lane '1 while(/(:[^(]*)\(1\047b0\)(?{print $F[0],$1})/g)' i
  2. CKBD2BWP7T:I
  3. DFNCND2BWP7T:CPN
  4. DFNCND2BWP7T:D
  5. DFNCND2BWP7T:CDN
  6. LNCND2BWP7T:EN
  7. LNCND2BWP7T:D
  8. [root@localhost ~]#
复制代码

论坛徽章:
7
亥猪
日期:2013-10-10 17:00:29辰龙
日期:2013-10-12 16:23:19卯兔
日期:2013-11-18 17:01:27金牛座
日期:2014-09-09 10:17:052015七夕节徽章
日期:2015-08-21 11:06:172015亚冠之柏太阳神
日期:2015-09-25 13:56:42数据库技术版块每日发帖之星
日期:2016-08-06 06:20:00
9 [报告]
发表于 2013-12-03 11:40 |只看该作者
  1. > awk '{for(i=7;i<=NF;i++){if($i~/b0/){l=split($i,a,"(");print l==3?$1 a[2]:$1 a[1]}}}' lottu07
  2. CKBD2BWP7T:I
  3. DFNCND2BWP7T:CPN
  4. DFNCND2BWP7T:D
  5. DFNCND2BWP7T:CDN
  6. LNCND2BWP7T:EN
  7. LNCND2BWP7T:D
复制代码

论坛徽章:
3
金牛座
日期:2013-08-26 10:25:02摩羯座
日期:2013-09-09 15:14:322015年亚洲杯之约旦
日期:2015-05-06 09:33:56
10 [报告]
发表于 2013-12-03 11:47 |只看该作者
回复 6# reyleon

看了会gensub ,学习了。


   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP