免费注册 查看新帖 |

Chinaunix

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

[文本处理] awk数组处理,数字字段加一列,谢谢。 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2022-04-12 09:11 |只看该作者 |倒序浏览
文件如下:

234
A001
A003
A005
A007
568
A123
A127
A129
A134
791
A567
A568
A561
A431
A436
A439


等等需要变成如下的。

有个规律,都是A开头,就是只要是A开头的字段,在后面需要加一列,数字就是它前面最上的那个数字,谢谢。

234
A001 234
A003 234
A005 234
A007 234
568
A123 568
A127 568
A129 568
A134 568
791
A567 791
A568 791
A561 791
A431 791
A436 791
A439 791

论坛徽章:
1
19周年集字徽章-年
日期:2020-10-29 09:39:21
2 [报告]
发表于 2022-04-12 13:24 |只看该作者
本帖最后由 legs 于 2022-04-12 13:25 编辑
  1. perl -pe'/(^\d+)/?$l=$1:s#$# $l#' file
复制代码
  1. perl lnE'say=/^\d+/?$_:"$_ [        DISCUZ_CODE_1        ]"' file
复制代码


awk也差不多的用法,弄个临时变量来记录一下就行了。第二条被论坛识别错了,不会玩。

论坛徽章:
0
3 [报告]
发表于 2022-04-12 14:50 |只看该作者
谢谢大神,好用!

论坛徽章:
0
4 [报告]
发表于 2022-04-17 23:51 |只看该作者
  1. [root@hecs-80021 20220417]# awk '{if($0~/^[0-9]+$/){s=$0;print $0} else {print $0,s}}' file
  2. 234
  3. A001 234
  4. A003 234
  5. A005 234
  6. A007 234
  7. 568
  8. A123 568
  9. A127 568
  10. A129 568
  11. A134 568
  12. 791
  13. A567 791
  14. A568 791
  15. A561 791
  16. A431 791
  17. A436 791
  18. A439 791
复制代码

论坛徽章:
0
5 [报告]
发表于 2022-04-17 23:53 |只看该作者
[root@hecs-80021 20220417]# awk '{if($0~/^[0-9]+$/){s=$0;print $0} else {print $0,s}}' file
234
A001 234
A003 234
A005 234
A007 234
568
A123 568
A127 568
A129 568
A134 568
791
A567 791
A568 791
A561 791
A431 791
A436 791
A439 791

论坛徽章:
0
6 [报告]
发表于 2022-04-17 23:54 |只看该作者
[root@hecs-80021 20220417]# awk '{if($0~/^[0-9]+$/){s=$0;print $0} else {print $0,s}}' file
234
A001 234
A003 234
A005 234
A007 234
568
A123 568
A127 568
A129 568
A134 568
791
A567 791
A568 791
A561 791
A431 791
A436 791
A439 791

论坛徽章:
0
7 [报告]
发表于 2022-04-17 23:55 |只看该作者
  1. awk '{if($0~/^[0-9]+$/){s=$0;print $0} else {print $0,s}}' file
复制代码




论坛徽章:
0
8 [报告]
发表于 2022-04-17 23:57 |只看该作者
  1. awk '{if($0~/^[0-9]+$/){s=$0;print $0} else {print $0,s}}' file
复制代码




论坛徽章:
0
9 [报告]
发表于 2022-04-18 10:42 |只看该作者
awk '{if($0~/^[0-9]+$/){s=$0;print $0} else {print $0,s}}' file

论坛徽章:
25
程序设计版块每日发帖之星
日期:2016-05-03 06:20:0015-16赛季CBA联赛之八一
日期:2018-07-05 10:34:09黑曼巴
日期:2018-07-06 15:19:5015-16赛季CBA联赛之佛山
日期:2018-08-03 13:19:3315-16赛季CBA联赛之山西
日期:2018-08-07 19:46:2315-16赛季CBA联赛之广夏
日期:2018-08-08 19:31:5015-16赛季CBA联赛之青岛
日期:2018-11-26 15:21:5015-16赛季CBA联赛之上海
日期:2018-12-11 09:45:3219周年集字徽章-年
日期:2020-04-18 23:54:5215-16赛季CBA联赛之深圳
日期:2020-04-19 21:40:19黑曼巴
日期:2022-04-03 17:55:1315-16赛季CBA联赛之八一
日期:2018-07-03 16:56:46
10 [报告]
发表于 2022-06-09 15:59 |只看该作者
回复 1# 2013fish


  1. cat 1
  2. 234
  3. A001
  4. A003
  5. A005
  6. A007
  7. 568
  8. A123
  9. A127
  10. A129
  11. A134
  12. 791
  13. A567
  14. A568
  15. A561
  16. A431
  17. A436
  18. A439

  19. awk '/^[0-9]+$/{a=$0}/^A/{$2=a}1' 1
  20. 234
  21. A001 234
  22. A003 234
  23. A005 234
  24. A007 234
  25. 568
  26. A123 568
  27. A127 568
  28. A129 568
  29. A134 568
  30. 791
  31. A567 791
  32. A568 791
  33. A561 791
  34. A431 791
  35. A436 791
  36. A439 791
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP