免费注册 查看新帖 |

Chinaunix

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

[文本处理] 怎么把每一行有数字的相加到最后一列 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2015-03-18 17:22 |只看该作者 |倒序浏览
怎么把每一行有数字的相加到最后一列如a文档
妈妈我爱你 妈妈 10 爱你 9
下班要回家煮饭  下班 5 回家 4 煮饭 2

处理后
妈妈我爱你 妈妈 10 爱你 9 19
下班要回家煮饭  下班 5 回家 4 煮饭 2 11
多谢大神

论坛徽章:
145
技术图书徽章
日期:2013-10-01 15:32:13戌狗
日期:2013-10-25 13:31:35金牛座
日期:2013-11-04 16:22:07子鼠
日期:2013-11-18 18:48:57白羊座
日期:2013-11-29 10:09:11狮子座
日期:2013-12-12 09:57:42白羊座
日期:2013-12-24 16:24:46辰龙
日期:2014-01-08 15:26:12技术图书徽章
日期:2014-01-17 13:24:40巳蛇
日期:2014-02-18 14:32:59未羊
日期:2014-02-20 14:12:13白羊座
日期:2014-02-26 12:06:59
2 [报告]
发表于 2015-03-18 17:28 |只看该作者
回复 1# 樱048

$ awk '{NF++;for(n=1;n<NF;n++)$NF+=$n}1' FILE
妈妈我爱你 妈妈 10 爱你 9 19
下班要回家煮饭 下班 5 回家 4 煮饭 2 11

   

论坛徽章:
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
3 [报告]
发表于 2015-03-18 17:28 |只看该作者
  1. awk '{for(i=1;i<=NF;i++)s+=$i;print $0,s;s=0}' file
复制代码

论坛徽章:
28
2015年迎新春徽章
日期:2015-03-04 10:16:53午马
日期:2015-03-20 17:11:07亥猪
日期:2015-03-20 17:11:23戌狗
日期:2015-03-20 17:11:33酉鸡
日期:2015-03-20 17:11:47申猴
日期:2015-03-20 17:11:58未羊
日期:2015-03-20 17:12:10子鼠
日期:2015-03-20 17:12:23丑牛
日期:2015-03-20 17:12:40卯兔
日期:2015-03-20 17:12:51辰龙
日期:2015-03-20 17:13:00巳蛇
日期:2015-03-20 17:13:12
4 [报告]
发表于 2015-03-18 17:30 |只看该作者
  1. awk '{for(i=0;i++<NF;)s+=$i;$0=$0" "s;s=""}1' inputfile
复制代码

论坛徽章:
22
处女座
日期:2014-10-11 13:33:292015亚冠之塔什干火车头
日期:2015-07-20 19:59:042015亚冠之塔什干火车头
日期:2015-07-26 10:59:31程序设计版块每日发帖之星
日期:2015-08-05 06:20:00每日论坛发贴之星
日期:2015-08-05 06:20:00程序设计版块每日发帖之星
日期:2015-08-07 06:20:00每日论坛发贴之星
日期:2015-08-07 06:20:002015亚冠之阿尔纳斯尔
日期:2015-10-01 15:23:28白银圣斗士
日期:2015-12-07 17:17:06操作系统版块每日发帖之星
日期:2015-12-27 06:20:002015亚冠之广州富力
日期:2015-07-08 15:48:31程序设计版块每日发帖之星
日期:2015-06-11 22:20:00
5 [报告]
发表于 2015-03-18 17:43 |只看该作者
回复 2# jason680
请教,awk做运算时是怎么处理字符串的


   

论坛徽章:
145
技术图书徽章
日期:2013-10-01 15:32:13戌狗
日期:2013-10-25 13:31:35金牛座
日期:2013-11-04 16:22:07子鼠
日期:2013-11-18 18:48:57白羊座
日期:2013-11-29 10:09:11狮子座
日期:2013-12-12 09:57:42白羊座
日期:2013-12-24 16:24:46辰龙
日期:2014-01-08 15:26:12技术图书徽章
日期:2014-01-17 13:24:40巳蛇
日期:2014-02-18 14:32:59未羊
日期:2014-02-20 14:12:13白羊座
日期:2014-02-26 12:06:59
6 [报告]
发表于 2015-03-18 23:14 |只看该作者
回复 5# 聆雨淋夜


>>请教,awk做运算时是怎么处理字符串

1. all data are string
妈妈我爱你 ==> string
妈妈  ==> string
10 ==> string
爱你 ==> string
9 ==> string

2. $NF += $n
n=1, $n => 妈我爱你(string) ==> convert to number and give the number 0
$NF += 0, result $NF = 0
Note: first char is not a number(0~9), cannot convert to number and return number 0

n=2, $n => 妈(string) ==> convert to number and give the number 0
$NF += 0, result $NF = 0

n=3, $n => 10(string) ==> convert to number and give the number 10
$NF += 10, result $NF = 10
Note: first char 1 is number string(0~9), and next char 0 is also number string(0~9)
..., get all number string(10) convert to number 10

n=4, $n => 你(string) ==> convert to number and give the number 0
$NF += 0, result $NF = 10

n=5, $n => 9(string) ==> convert to number and give the number 9
$NF += 9, result $NF = 19



论坛徽章:
0
7 [报告]
发表于 2015-03-19 14:34 |只看该作者
如果我要把一行数据 第二列跟第五列数据相同的时候  就把这一行数据提出来  不相同的话就不用

ωǒ 2015/3/19 14:30:12
ABCDEF CD AB 800 CD 650
QWERT RT QW 800 ER 650
想要的结果是
ABCDEF CD AB 800 CD 650
回复 2# jason680


   

论坛徽章:
20
卯兔
日期:2015-01-26 22:05:142015亚冠之萨济拖拉机
日期:2015-09-10 15:15:282015亚冠之阿尔希拉尔
日期:2015-09-25 17:37:53程序设计版块每日发帖之星
日期:2015-10-03 06:20:00程序设计版块每日发帖之星
日期:2015-12-09 06:20:00CU十四周年纪念徽章
日期:2015-12-17 09:07:15程序设计版块每日发帖之星
日期:2015-12-25 06:20:34程序设计版块每日发帖之星
日期:2015-12-25 06:20:34程序设计版块每日发帖之星
日期:2015-12-25 06:20:342015亚冠之广州富力
日期:2015-08-27 19:29:56每日论坛发贴之星
日期:2015-08-26 06:20:002015亚冠之阿尔希拉尔
日期:2015-05-18 17:26:27
8 [报告]
发表于 2015-03-19 14:43 |只看该作者
回复 7# 樱048


    awk '$2==$5' file

论坛徽章:
28
2015年迎新春徽章
日期:2015-03-04 10:16:53午马
日期:2015-03-20 17:11:07亥猪
日期:2015-03-20 17:11:23戌狗
日期:2015-03-20 17:11:33酉鸡
日期:2015-03-20 17:11:47申猴
日期:2015-03-20 17:11:58未羊
日期:2015-03-20 17:12:10子鼠
日期:2015-03-20 17:12:23丑牛
日期:2015-03-20 17:12:40卯兔
日期:2015-03-20 17:12:51辰龙
日期:2015-03-20 17:13:00巳蛇
日期:2015-03-20 17:13:12
9 [报告]
发表于 2015-03-19 15:58 |只看该作者
回复 6# jason680


   学习了..

论坛徽章:
0
10 [报告]
发表于 2015-04-21 14:52 |只看该作者
如果第二列中包含了数字,怎么不要把数字也算进去呢
妈妈我爱你 10妈妈 10 爱你 9
下班要回家煮饭  下班9 5 回家 4 煮饭 2

处理后
妈妈我爱你 10妈妈 10 爱你 9 19
下班要回家煮饭  下班9 5 回家 4 煮饭 2 11

回复 3# reyleon


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

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP