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

ChinaUnix.net

  平台 论坛 博客 文库 频道自动化运维 虚拟化 储存备份 C/C++ PHP MySQL 嵌入式 Linux系统
最近访问板块 发新帖
楼主: 1cpuer

[文本处理] 重复字符 [复制链接]

论坛徽章:
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-06 02:55 |显示全部楼层
回复 10# christmas1102

总共跑了 2 个
第 1 成功否 # 如果成功
那就不是 awk 的版本问题

论坛徽章:
13
程序设计版块每日发帖之星
日期:2016-05-03 06:20:0015-16赛季CBA联赛之青岛
日期:2018-06-08 13:45:2815-16赛季CBA联赛之同曦
日期:2018-06-04 19:42:2015-16赛季CBA联赛之山东
日期:2018-05-30 12:44:59CU十四周年纪念徽章
日期:2018-05-15 11:36:3815-16赛季CBA联赛之广东
日期:2018-05-14 09:52:4215-16赛季CBA联赛之深圳
日期:2018-05-04 21:53:0815-16赛季CBA联赛之辽宁
日期:2018-04-02 14:03:3915-16赛季CBA联赛之北京
日期:2018-03-23 15:24:07CU十四周年纪念徽章
日期:2018-03-16 13:09:532016科比退役纪念章
日期:2018-01-19 12:45:5915-16赛季CBA联赛之同曦
日期:2017-09-11 14:39:48
发表于 2018-06-06 09:53 |显示全部楼层
回复 10# christmas1102


建议升级awk版本,如果不方便升级可以在“awk”后面加上“--re-interval”参数

论坛徽章:
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-06 11:29 |显示全部楼层
回复 9# wh7211

不用 3 元运算符 a >=< ? b : c
可以写一个吗

论坛徽章:
13
程序设计版块每日发帖之星
日期:2016-05-03 06:20:0015-16赛季CBA联赛之青岛
日期:2018-06-08 13:45:2815-16赛季CBA联赛之同曦
日期:2018-06-04 19:42:2015-16赛季CBA联赛之山东
日期:2018-05-30 12:44:59CU十四周年纪念徽章
日期:2018-05-15 11:36:3815-16赛季CBA联赛之广东
日期:2018-05-14 09:52:4215-16赛季CBA联赛之深圳
日期:2018-05-04 21:53:0815-16赛季CBA联赛之辽宁
日期:2018-04-02 14:03:3915-16赛季CBA联赛之北京
日期:2018-03-23 15:24:07CU十四周年纪念徽章
日期:2018-03-16 13:09:532016科比退役纪念章
日期:2018-01-19 12:45:5915-16赛季CBA联赛之同曦
日期:2017-09-11 14:39:48
发表于 2018-06-06 12:10 |显示全部楼层
回复 13# 1cpuer


『d=a?b:c』相当于『if(a){d=b}else{d=c}』

论坛徽章:
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-06 13:39 |显示全部楼层
本帖最后由 1cpuer 于 2018-06-06 17:36 编辑

回复 14# wh7211

awk 'BEGIN{a=11;if(a >= 9){print "ok";}else{print "error"}}'
ok
awk 'BEGIN{ a=11; print a >= 9 ? "ok" : "error" }'   
ok
print 不可省略了吗
不好意思,问题没有描述清楚。然你回复尴尬了
似曾见过 awk 'NR==1;NR>1{a[$1]=a[$1]?a[$1]"\n"$00;b[$1]++}END{PROCINFO["sorted_in"]="@val_num_desc";for(i in b){print a}}' A.kf
a ?b : c  后面不带 print
上面例子是 a[$1] , 最后是打印 print a 。想过也是那么一回事。

论坛徽章:
13
程序设计版块每日发帖之星
日期:2016-05-03 06:20:0015-16赛季CBA联赛之青岛
日期:2018-06-08 13:45:2815-16赛季CBA联赛之同曦
日期:2018-06-04 19:42:2015-16赛季CBA联赛之山东
日期:2018-05-30 12:44:59CU十四周年纪念徽章
日期:2018-05-15 11:36:3815-16赛季CBA联赛之广东
日期:2018-05-14 09:52:4215-16赛季CBA联赛之深圳
日期:2018-05-04 21:53:0815-16赛季CBA联赛之辽宁
日期:2018-04-02 14:03:3915-16赛季CBA联赛之北京
日期:2018-03-23 15:24:07CU十四周年纪念徽章
日期:2018-03-16 13:09:532016科比退役纪念章
日期:2018-01-19 12:45:5915-16赛季CBA联赛之同曦
日期:2017-09-11 14:39:48
发表于 2018-06-06 16:21 |显示全部楼层
本帖最后由 wh7211 于 2018-06-06 18:19 编辑

回复 15# 1cpuer


『d=a?b:c』:这是赋值语句,把b或c的值赋值给d,是不需要print的
『print a?b:c』:直接打印b或c的值
你在15楼给出的例子,是属于赋值语句,因此没有print。最后在END中你贴出来的代码“print a”应该是不对的,因为a是数组

论坛徽章:
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-06 21:43 |显示全部楼层
回复 9# wh7211

# [ /home/soio/1bs/awks ] {2018-06-06 21:39:46}
: 1528292386:0;➜  cat kk-1.kf
tt22hhHHjjjkkk jjjj 2-4.1
jjjjjssjjjjjjj


# [ /home/soio/1bs/awks ] {2018-06-06 21:40:09}
: 1528292409:0;➜  echo "tt22hhHHjjjkkk jjjj 2-4.1\n jjjjjssjjjjjjj"|awk 'function p(){if($0){match($0,"^([^j]*)(j{3,})",a);b[++i]=a[1];b[++i]=a[2]?"[j]"length(a[2]):"";gsub("^([^j]*)(j{3,}|$)","");p()}else{for(j=1;j<=i;j++){c=c?c""b[j]:b[j]};print c}}{p()}'
tt22hhHH[j]3kkk [j]4
tt22hhHH[j]3kkk [j]4tt22hhHH[j]3kkk [j]4 [j]5ss[j]7


# [ /home/soio/1bs/awks ] {2018-06-06 21:40:29}
: 1528292429:0;➜  awk 'function p(){if($0){match($0,"^([^j]*)(j{3,}|$)",a);b[++i]=a[1];b[++i]=a[2]?"[j]"length(a[2]):"";gsub("^([^j]*)(j{3,}|$)","");p()}else{for(j=1;j<=i;j++){c=c?c""b[j]:b[j]};print c}}{p()}' kk-1.kf      
tt22hhHH[j]3kkk [j]4 2-4.1
tt22hhHH[j]3kkk [j]4 2-4.1tt22hhHH[j]3kkk [j]4 2-4.1 [j]5ss[j]7

作用文件多了一点

论坛徽章:
13
程序设计版块每日发帖之星
日期:2016-05-03 06:20:0015-16赛季CBA联赛之青岛
日期:2018-06-08 13:45:2815-16赛季CBA联赛之同曦
日期:2018-06-04 19:42:2015-16赛季CBA联赛之山东
日期:2018-05-30 12:44:59CU十四周年纪念徽章
日期:2018-05-15 11:36:3815-16赛季CBA联赛之广东
日期:2018-05-14 09:52:4215-16赛季CBA联赛之深圳
日期:2018-05-04 21:53:0815-16赛季CBA联赛之辽宁
日期:2018-04-02 14:03:3915-16赛季CBA联赛之北京
日期:2018-03-23 15:24:07CU十四周年纪念徽章
日期:2018-03-16 13:09:532016科比退役纪念章
日期:2018-01-19 12:45:5915-16赛季CBA联赛之同曦
日期:2017-09-11 14:39:48
发表于 2018-06-07 09:53 |显示全部楼层
回复 17# 1cpuer


处理1行和处理多行代码是不一样的

论坛徽章:
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-07 14:35 |显示全部楼层
回复 18# wh7211

3 个月之前,只有jason680 和 你解过贴中几个难题,jason680 去解其它了。少了一条参考信息,

论坛徽章:
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:33 |显示全部楼层
# [ /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


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

本版积分规则

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP