免费注册 查看新帖 |

Chinaunix

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

shell求助 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-04-08 12:54 |只看该作者 |倒序浏览
本帖最后由 north423 于 2011-04-08 12:56 编辑

两个文件A,B
A内容如下
  1. name1   date1
  2. name4   date2
  3. name1   date3
复制代码
B内容如下
  1. name1 2
  2. name2 1
  3. name3 1
复制代码
B中代表的意思是name1的个数为2,name2的个数为1,name3的个数为1


我想将A文件的内容合并到B,合并的结果是
  1. name1 3
  2. name4 1
复制代码
其中A中出现的name在B中增加一次(只增加一次),A中未出现,在B中出现就删除此name

不知道我描述清楚没

论坛徽章:
0
2 [报告]
发表于 2011-04-08 13:05 |只看该作者
awk -f test.awk  A B
-----------------test.awk--------------------
FNR=NR{
    array[$1] = 1
}
FNR!=NR{
   if ($1 in array)
      array[$1] = $2+1
   next
}
END{
   system("echo \"\"> B")
   for (i in array)
      i" "array[i] >B
}



}

论坛徽章:
0
3 [报告]
发表于 2011-04-08 13:14 |只看该作者
回复 2# chenbin200818
运算结果B为空?

论坛徽章:
2
射手座
日期:2014-10-10 15:59:4715-16赛季CBA联赛之上海
日期:2016-03-03 10:27:14
4 [报告]
发表于 2011-04-08 13:14 |只看该作者
回复 1# north423
  1. awk 'NR==FNR{a[$1]=$2;}NR>FNR{b[$1]==1}END{for(i in b) print i,a[i]+1}' B A
复制代码

论坛徽章:
0
5 [报告]
发表于 2011-04-08 13:18 |只看该作者
回复 4# yinyuemi
3Q,

论坛徽章:
0
6 [报告]
发表于 2011-04-08 13:31 |只看该作者
回复 4# yinyuemi

如果B文件是空的,那么A中的name并不会被计算打印

论坛徽章:
2
射手座
日期:2014-10-10 15:59:4715-16赛季CBA联赛之上海
日期:2016-03-03 10:27:14
7 [报告]
发表于 2011-04-08 13:35 |只看该作者
回复 6# north423


    没明白,举个例子?

论坛徽章:
0
8 [报告]
发表于 2011-04-08 13:38 |只看该作者
回复 7# yinyuemi
A文件还是例子的
B文件清空,没有内容,意味关于name的记录都没有

合并后的结果应该是
name1 1
name4 1

实际结果是空的,似乎NR>FNR这步执行不到

论坛徽章:
2
射手座
日期:2014-10-10 15:59:4715-16赛季CBA联赛之上海
日期:2016-03-03 10:27:14
9 [报告]
发表于 2011-04-08 13:45 |只看该作者
回复 8# north423

try:
  1. awk 'FILENAME=="B"{a[$1]=$2;}FILENAME=="A"{b[$1]==1}END{for(i in b) print i,a[i]+1}' B A
  2. name1 1
  3. name4 1
复制代码

论坛徽章:
0
10 [报告]
发表于 2011-04-08 13:50 |只看该作者
回复 9# yinyuemi

加le检查就没问题,非常感谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP