免费注册 查看新帖 |

Chinaunix

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

[文本处理] awk sed 问题 [复制链接]

论坛徽章:
1
双鱼座
日期:2014-08-25 19:13:11
11 [报告]
发表于 2014-08-04 15:28 |只看该作者
请教 /6 /4 /2 是啥意思?
回复 2# klainogn


   

论坛徽章:
0
12 [报告]
发表于 2014-08-04 15:50 |只看该作者
回复 11# fxpbupt


    表示替换第六个 第四个 第二个

论坛徽章:
1
双鱼座
日期:2014-08-25 19:13:11
13 [报告]
发表于 2014-08-04 16:11 |只看该作者

回复 12# ivorning


   

论坛徽章:
5
未羊
日期:2014-08-04 16:15:21天秤座
日期:2014-08-13 13:52:372015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:56:112015亚冠之浦和红钻
日期:2015-06-29 15:30:48
14 [报告]
发表于 2014-08-04 16:22 |只看该作者
简单给lz解释下吧

48|dec|3bc1997|lpsx|68.00|lvx2a|138

's/([^|]+\|[^|]+)\|/\1;/g'

对照着一行文本给新手解释起来应该更容易理解

48对应的正则是第一个
[^|]+

48和dec中间的|对应的正则是
\|

dec对应的正则是第二个
[^|]+

把前3部分正则连在一起代表的就是括号中表示的
([^|]+\|[^|]+)
48|dec

然后后边再跟上一个|
\|

用sed里的s去替换
第一个括号用\1表示引用,不去做任何替换操作
括号外边的\|,自然就丢掉了
然后再给\1后边追加一个分号,就变成了
48|dec;

既然是2个2个的替换,那么后边的第4个,第6个,第8个,第n个偶数|都会被删掉,然后追加一个;
最终就是lz你想要的结果
48|dec;3bc1997|lpsx;68.00|lvx2a;138

2楼的方法肯定是可以的,但加入你一行中有100个|......太可怕了

论坛徽章:
0
15 [报告]
发表于 2014-08-04 16:41 |只看该作者
回复 14# dn833


    如果不是偶数的替换,而是随机的怎么弄呢?
    多谢大神的指点

论坛徽章:
5
未羊
日期:2014-08-04 16:15:21天秤座
日期:2014-08-13 13:52:372015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:56:112015亚冠之浦和红钻
日期:2015-06-29 15:30:48
16 [报告]
发表于 2014-08-04 16:48 |只看该作者
随机的就不能这么搞了

论坛徽章:
9
2015亚冠之大阪钢巴
日期:2015-06-04 11:47:30丑牛
日期:2015-01-22 15:49:26巳蛇
日期:2015-01-22 10:11:18巨蟹座
日期:2014-11-20 10:55:03天蝎座
日期:2014-11-16 22:10:26处女座
日期:2014-11-16 11:01:10申猴
日期:2014-09-19 11:12:37双鱼座
日期:2014-07-25 10:09:54程序设计版块每日发帖之星
日期:2015-08-24 06:20:00
17 [报告]
发表于 2014-08-04 16:48 |只看该作者
楼上好厉害

论坛徽章:
0
18 [报告]
发表于 2014-08-04 16:50 |只看该作者
回复 10# ivorning
代码如何体现就把第二个|替换???


   

论坛徽章:
0
19 [报告]
发表于 2014-08-04 16:50 |只看该作者
回复 16# dn833


    那么如果是奇数的替换呢,大神

论坛徽章:
5
未羊
日期:2014-08-04 16:15:21天秤座
日期:2014-08-13 13:52:372015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:56:112015亚冠之浦和红钻
日期:2015-06-29 15:30:48
20 [报告]
发表于 2014-08-04 16:56 |只看该作者
回复 19# Nathon99


    自己动动脑子咯~~~~哥都解释到如此地步了,如果不能触类旁通的话,建议你赶紧转行吧~~~
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP