忘记密码   免费注册 查看新帖 |

ChinaUnix.net

  平台 论坛 博客 文库 频道自动化运维 虚拟化 储存备份 C/C++ PHP MySQL 嵌入式 Linux系统
最近访问板块 发新帖
查看: 948 | 回复: 2

[文本处理] 三目三眼三三删 [复制链接]

论坛徽章:
6
程序设计版块每日发帖之星
日期:2016-05-11 06:20:00操作系统版块每日发帖之星
日期:2016-05-12 06:20:00每日论坛发贴之星
日期:2016-05-12 06:20:00操作系统版块每日发帖之星
日期:2016-05-14 06:20:00程序设计版块每日发帖之星
日期:2016-05-31 06:20:00每日论坛发贴之星
日期:2016-05-31 06:20:00
发表于 2018-06-10 07:58 |显示全部楼层
# [ /home/soio/1bs/awks ] {2018-06-10 07:24:00}
: 1528586640:0;➜  awk 'function p(){if($0){match($0,"^([^@]*)(@+|$)",a);b[++i]=a[1];b[++i]=a[2]?"[@]"length(a[2]) FS:"";gsub("^([^@]*)(@+|$)","");p()}else{for(j=1;j<=i;j++){c=c?c""b[j]:b[j]};print c}}{p()}' kk.kf
1-2[@]7 sss[@]6 ssssssss[@]13 dd[@]9 f
1-2[@]7 sss[@]6 ssssssss[@]13 dd[@]9 f1-2[@]7 sss[@]6 ssssssss[@]13 dd[@]9 fee[@]8 eeee[@]12 eeeeeee[@]9 ff
1-2[@]7 sss[@]6 ssssssss[@]13 dd[@]9 f1-2[@]7 sss[@]6 ssssssss[@]13 dd[@]9 fee[@]8 eeee[@]12 eeeeeee[@]9 ff1-2[@]7 sss[@]6 ssssssss[@]13 dd[@]9 fee[@]8 eeee[@]12 eeeeeee[@]9 ff


# [ /home/soio/1bs/awks ] {2018-06-10 07:24:11}
: 1528586651:0;➜  cat kk.kf
1-2@@@@@@@sss@@@@@@ssssssss@@@@@@@@@@@@@dd@@@@@@@@@f
ee@@@@@@@@eeee@@@@@@@@@@@@eeeeeee@@@@@@@@@ff


#上面的代码我测试好多次了,基本不用测试
a>b?b:c  [三目运算符] 相当与 if {} else {}
那整个相当与 if {} else {} 嵌套循环

球的是
1-2[@]7 sss[@]6 ssssssss[@]13 dd[@]9 fee[@]8 eeee[@]12 eeeeeee[@]9 ff

1-2[@]7 sss[@]6 ssssssss[@]13 dd[@]9 f
ee[@]8 eeee[@]12 eeeeeee[@]9 ff


论坛徽章:
0
发表于 2018-06-10 15:42 |显示全部楼层
本帖最后由 christmas1102 于 2018-06-10 19:43 编辑

需要 AWK 4.0+
  1. awk '{split($0,a,"[@]+",b);for(i in a){printf a[i];if(b[i]){printf "[@]"length(b[i])" "}}print ""}' FILE
复制代码


AWK 3.0+
  1. awk '{split($0,a,"[@]+");gsub(/[^@]+/," ",$0);for(i=1;i<=length(a);i++){printf a[i];if($i){printf "[@]"length($i)" "}}print ""}' FILE
复制代码


论坛徽章:
6
程序设计版块每日发帖之星
日期:2016-05-11 06:20:00操作系统版块每日发帖之星
日期:2016-05-12 06:20:00每日论坛发贴之星
日期:2016-05-12 06:20:00操作系统版块每日发帖之星
日期:2016-05-14 06:20:00程序设计版块每日发帖之星
日期:2016-05-31 06:20:00每日论坛发贴之星
日期:2016-05-31 06:20:00
发表于 2018-06-10 16:20 |显示全部楼层
本帖最后由 1cpuer 于 2018-06-10 16:36 编辑

回复 2# christmas1102

a, b 第2个不懂
3可
在小男人百科全书里找到了  split  s a [r [seps]]
您需要登录后才可以回帖 登录 | 注册

本版积分规则

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号 北京市公安局海淀分局网监中心备案编号:11010802020122
广播电视节目制作经营许可证(京) 字第1234号 中国互联网协会会员  联系我们:wangnan@it168.com
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP