awk之特征相同行的合并 ~转
2016-12-23 16:40
134 查看
awk之特征相同行的合并
文本:
1001 hisk01
1001 hisk02
1001 hisk03
1002 hisk04
1002 hisk05
1002 hisk06
1003 hisk07
1003 hisk08
特征相同的合并成一行:
1001 hisk01 hisk02 hisk03
1002 hisk04 hisk05 hisk06
1003 hisk07 hisk08
[解析]
这也是老生常谈的内容了,不过这句代码有两个新颖的地方,按照这种判断格式比较更科学一些。<(echo)这是 yinyuemi老师 的一种新写法,可以省略掉最后的 END 输出,很实用。
我自己写的,繁琐~~
文本:
1001 hisk01
1001 hisk02
1001 hisk03
1002 hisk04
1002 hisk05
1002 hisk06
1003 hisk07
1003 hisk08
特征相同的合并成一行:
1001 hisk01 hisk02 hisk03
1002 hisk04 hisk05 hisk06
1003 hisk07 hisk08
awk '{if($1==x){i=i" "$2}else{if(NR>1){print i};i=$0};x=$1;y=$2}' file <(echo)
[解析]
这也是老生常谈的内容了,不过这句代码有两个新颖的地方,按照这种判断格式比较更科学一些。<(echo)这是 yinyuemi老师 的一种新写法,可以省略掉最后的 END 输出,很实用。
awk '{a[$1]=a[$1]?a[$1]" "$2:$2}END{for(i=0;i++<asorti(a,b);)print b[i],a[b[i]]}' file
sed ':a;N;s/\(.* \)\( .*\)\n\1/\1\2/;ta;P;D' file
我自己写的,繁琐~~
awk '{a[$1]++; b[$1, a[$1]]=$2}END{for(i in a) {printf("%s: ", i); for(j=1; j<=a[i]; j++) printf("%s ",b[i,j]); printf("\n")}}' data
相关文章推荐
- awk 两个文件的两个列若相同,合并两个文件
- awk 合并相同列的行
- SQL Server select 将类型相同的行合并,并将对应金额相加
- 合并两个类型相同的List
- GridView实现某列中相同值合并(不规则表)
- 怎么合并bug_id相同的记录(bugzilla使用的mysql)?
- 二维数组相同部分合并
- Unity教程之-合并(Combine)引用相同材质球的网格(Mesh)
- EXCEL 批量将相同的行合并(宏脚本记录)
- ArcGIS合并统一图层下相同属性的要…
- 使用easyUI datagrid 合并相同连续列
- 如果list中的对像的编号相同就把对像合并,并将数量相加
- jQuery easyUI表格相同连续列合并
- sed&&awk 合并行
- C#查找数组中相同的项并合并
- 扩展GridView控件(11) - 合并指定列的相邻且内容相同的单元格
- C++不同类中的特征标相同的同名函数
- 合并GridView中某列相同信息的行(单元格), 并底色斑马纹
- 巧妙利用PARTITION分组排名递增特性解决合并连续相同数据行
- 合并table相同单元格的插件(基于jquery的)