shell求助
时间:2011-04-08
来源:互联网
两个文件A,B
A内容如下
- name1 date1
- name4 date2
- name1 date3
- name1 2
- name2 1
- name3 1
我想将A文件的内容合并到B,合并的结果是
- name1 3
- name4 1
不知道我描述清楚没
作者: north423 发布时间: 2011-04-08
-----------------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
}
}
作者: chenbin200818 发布时间: 2011-04-08
运算结果B为空?
作者: north423 发布时间: 2011-04-08
- awk 'NR==FNR{a[$1]=$2;}NR>FNR{b[$1]==1}END{for(i in b) print i,a[i]+1}' B A
作者: yinyuemi 发布时间: 2011-04-08
3Q,
作者: north423 发布时间: 2011-04-08
如果B文件是空的,那么A中的name并不会被计算打印
作者: north423 发布时间: 2011-04-08
没明白,举个例子?
作者: yinyuemi 发布时间: 2011-04-08
A文件还是例子的
B文件清空,没有内容,意味关于name的记录都没有
合并后的结果应该是
name1 1
name4 1
实际结果是空的,似乎NR>FNR这步执行不到
作者: north423 发布时间: 2011-04-08
try:
- awk 'FILENAME=="B"{a[$1]=$2;}FILENAME=="A"{b[$1]==1}END{for(i in b) print i,a[i]+1}' B A
- name1 1
- name4 1
作者: yinyuemi 发布时间: 2011-04-08
加le检查就没问题,非常感谢
作者: north423 发布时间: 2011-04-08
如果用脚本执行这个命令,会出错
$1 $2会被识别为脚本的参数,这个该怎么解决?
作者: north423 发布时间: 2011-04-08
- cat awk.script
- FILENAME=="B"{a[$1]=$2;}
- FILENAME=="A"{b[$1]==1}
- END{for(i in b) print i,a[i]+1}
-
- awk -f awk.script B A
- name1 1
- name4 1
作者: yinyuemi 发布时间: 2011-04-08
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28